SMG
Проект Data Science для определения целевой аудитории для увеличения продаж в книжных магазинах
В результате работы любого отдела компании (или даже просто сотрудника) постоянно создаются новые данные, которые надо хранить и учитывать в процессе развития бизнеса. Поэтому важно, чтобы весь этот поток информации был легко доступен и на него можно было смотреть как на единую взаимосвязанную систему.
Раньше мы решали эту проблему точечным использованием IT-технологий. К примеру, мы использовали внешние CRM и базы знаний. При такой организации все данные оказываются разбросаны по разным платформам, но, когда команда состоит из 20 человек, это не приносит значительных неудобств. Когда команда Sixhands выросла почти в два раза, это начало грозить снижению нашей результативности, и прежде, чем это стало критичным, мы приняли решение разработать собственную единую ERP. Сегодня наша команда включает в себя около 80 сотрудников, и то, насколько наше решение оказалось удобным для организации работы, особенно заметно.
С задачей на разработку ERP — мы обратились к себе :) В этом кейсе мы расскажем о некоторых модулях нашей Sixhands ERP-системы.
Для ERP, как для неотъемлемой части команды компании, важно всегда быть в строю. Поэтому при разработке у нас была задача создать стабильную, отказоустойчивую систему. Так, на этапе проектирования мы выбрали микросервисную архитектуру: такая организация обеспечивает модульность и делает систему более гибкой и легко поддерживаемой. Сейчас наша ERP состоит из небольших подсистем, и каждая такая подсистема нацелена на оптимизацию работы разных подразделений. К примеру, среди них есть отделы Продаж, Бизнес-аналитики, Проектного менеджмента и т. д.
Все микросервисы в нашей ERP связаны друг с другом, и общаются посредством REST API. При этом каждый из них завернут в отдельный docker-контейнер. Это позволяет, во-первых, изолировать их от среды обитания: то есть, так они работают вне зависимости от того, на каком ПК запущены. Во-вторых, это помогло нам сделать систему более гибкой и легко поддерживаемой, благодаря лёгкости в ее настройке и изменении конфигурации.
Первым модулем, который мы реализовали, стала система таск-трегинка. В нем проектные менеджеры могут ставить задачи разработчикам и отслеживать их выполнение. А так как значительная часть рабочего общения сотрудников находится в Телеграмме, нами было принято решение разработать еще и ТГ-бота. Так родился незаменимый для нас помощник, о котором — в следующем параграфе. Серверную часть таск-трекера мы реализовали на Node.js, а для клиентской —- применили популярный фронтенд-фреймворк React.
Итак, ТГ-бот помог нам быстро интегрировать таск-трекер в работу компании тем, что стал мостиком между ERP и всегда открытой вкладкой Телеграмма. Чтобы он мог считывать и использовать нужную информацию на платформе, передавая ее потом сотрудникам, мы реализовали в нем парсер строковых данных. Теперь, когда в корпоративном таск-трекере кто-то выставляет таску с пометкой “Важное”, ТГ-бот сразу уведомляет об этом, чтобы задача скорее перешла в активный статус. ТГ-бот также позволяет, не выходя из Телеграмма, давать в ERP таски другим, указывая для них дедлайн и уровень важности. Для разработки серверной части ТГ-бота мы использовали бэкенд-фреймворк Django.
Как сделать проектный менеджмент еще эффективнее? Надо просто ввести в работу систему отчетов! Так в нашей ERP появился еще один модуль. Предупреждаем о технологических дебрях в следующем абзаце!
Модуль контроля отчетов управляется скриптом, написанном на Python3. С заданной периодичностью скрипт запускается на бэкенде и далее по API обращается к соответствующему микросервису. Так он получает необходимую статистику, на основе которой выстраивает HTML письмо с PDF-документом, и такие письма с отчетами уже направляются сотрудникам по электронной почте.
Один из источников новых заказов — это рабочие биржи и тендерные площадки, где происходит поиск релевантных проектов. Этот процесс мы также автоматизировали, разработав в рамках ERP парсеры и интеграторы, которые помогают находить на площадках заказы, упрощая работу Sales-менеджерам. Заказы, прошедшие первичную квалификацию, автоматически попадают в воронку продаж. Если раньше для этого мы использовали внешние популярные CRM-системы, то теперь, с появлением собственной ERP, мы захотели кастомизировать этот процесс под особенности нашей компании. Так, мы реализовали еще один микросервис для своей корпоративной CRM-системы.
В качестве технологии для парсера и интеграторов, мы использовали технологию Selenium, а CRM реализовали на тех. стеке, состоящем из Django и React.
Когда с заказчиком уже обсудили концепцию проекта, приходит время направить ему коммерческое предложение с ориентировочными ценами, сроками, и другими важными деталями разработки. Чтобы ускорить этот процесс, мы реализовали генератор коммерческих предложений: в этой системе Бизнес-Аналитик может загрузить Google Sheet, а на выходе —- получить статичную HTML-страницу, которую уже можно отправить заказчику.
Sixhands ERP быстро интегрировалась в жизнь компании и скоро стала неотъемлемой частью нашей работы. Она продолжает расширяться, и ее модульность позволяет легко модифицировать систему, добавляя новые сервисы. Так что и этот кейс со временем будет увеличиваться!
Sixhands GPT Alpha