Обсудить
проект
+7 (495) 132-14-22

Сервис проведения акций

Счастливая покупка

by.happyby.com
Клиент

Конте СПА — крупнейший в Восточной Европе производитель чулочно-носочных изделий, одежды и белья для женщин, мужчин и детей. Более 50 000 м² производственных и складских помещений и дистрибуция более чем по 30 странам. Головной офис — в республике Беларусь.

Компания проводит постоянную работу по продвижению на рынках выпускаемой продукции, в том числе с помощью различных маркетинговых мероприятий.

Задача

Сделать процесс участия в рекламных акциях удобнее для потребителей. Сократить время и стоимость обработки входящих писем, перейти к полностью автоматической цифровой системе без бумажных писем. С помощью новой системы увеличить количество стран, где проводятся рекламные акции (сейчас только Белоруссия).

Технологии
ReactJS

Наш стандартный рабочий инструмент, проверенный фреймворк для разработки интерфейсной части.

Apache Cassandra

БД, которая может работать с действительно большими объёмами данных без потери скорости.

Docker Swarm

хороший способ объединить всё в единую сеть и ограничить доступ к ней снаружи, из большого интернета.

Ruby on Rails

Наш естественный язык. На нём мы обычно разговариваем в офисе.

Elixir

С его помощью мы в проекте делаем быстрые и многопоточные приложения, например, быстрый API для промокодов. Заодно он даёт запас прочности, который пригодится при масштабировании системы.

Компания Конте-Спа уже много лет проводит стимулирующие мероприятия для своих покупателей. Раньше это выглядело так: клиенты покупали их продукцию, вырезали логотип и обычной почтой в бумажных конвертах отправляли это в головной офис компании.

В результате приходило огромное количество писем, до 85 000 за акцию. Каждое из них нужно было распаковать, проверить логотип на подлинность, забить руками в базу ФИО, адрес и контактную информацию покупателя и проверить ещё раз, что всё введено правильно. Было сложно, трудоёмко и неэффективно.

Нужно было придумать и реализовать такое решение, которое бы позволило автоматизировать работу с рекламными акциями и сообщать участникам о результатах. А ещё — сделать возможным проведение конкурсов в остальных странах и при этом соблюсти местное законодательство.

ЦЕЛИ ПРОЕКТА
1.Упростить процесс участия покупателей в таких мероприятиях

Чтобы принять участие в любой акции со старой системой подачи заявок, нужно было выполнить много действий: вырезать из упаковки штрихкод, сходить на почту, а потом ждать объявления результатов. Это сложно и долго, многие не хотят тратить на это своё время.

2.Сделать возможным проведение стимулирующих мероприятий на территории различных государств

Компания поставляет свою продукцию во многие страны, а участвовать могли только жители Белоруссии. Это резко сужало охват рекламной кампании.

3.Упростить сбор статистики о самих акциях и участниках

Изначально все присланные промокоды вводились сотрудниками вручную, и на это уходило много рабочих человеко-часов. Компания поставила задачу полностью автоматизировать сбор статистики.

4.Обеспечить оперативное информирование участников о проводимых мероприятиях и их результатах

Раньше о выигрыше человек мог узнать только из газет или видео на официальном сайте. Нужно было придумать более удобный и оперативный способ информирования всех участников.

5.Снизить затраты на проведение стимулирующих мероприятий

В старом виде система проведения акций обходилась компании дорого, съедая приличную часть рекламного бюджета. Нужно такое решение, которое снизило бы эти затраты.

решение
Вариант решения изменить механику проведения рекламных акций.

Для этого понадобится нанести промокоды на всю продукцию и собрать их все в единую базу. Так как продукции выпускается много и она не имеет срока годности, то за 10 лет работы такой системы накопится огромное количество промокодов, примерно полмиллиарда. Нужно будет моментально находить в базе любой из них и сразу давать ответ по нему.

Вместо писем, пользователи будут регистрировать промокоды с продукции через сайт. Система должна будет моментально проверять введённый пользователем промокод и сразу давать ответ, либо начисляя баллы, либо отвечая что данный промокод — недействительный. Полученные баллы пользователи будут спользовать для участия в розыгрышах призов.

подготовка и схемы

Заказчик пришёл с готовым техническим заданием. В нём были прописаны основные моменты, как должна работать система в целом и детально прописаны некоторые её части. К сожалению, этого оказалось недостаточно.

В нашем случае не хватало понимания того, как все части системы должны работать вместе, поэтому было необходимо полноценное проектирование. Главная задача при этом — сделать так, чтобы заказчик и исполнитель одинаково точно понимали, что должно получиться в итоге.

Хорошее техзадание включает в себя роли, процессы, прототипы, поведение и реакции участников системы.

Когда есть такой документ, можно обойтись без проектирования и сразу перейти к реализации. Если подробного техзадания нет — то нельзя оценить проект ни по стоимости, ни по срокам. Даже в этой задаче нам пришлось заняться проектированием, несмотря на отличное ТЗ, потому что масштаб всей системы был колоссальным.

Общая схема архитектуры системы

Когда начали общаться с заказчиком, мы намечали основные функции системы вопросами из серии «А что если будет вот так?… » и смотрели, как это реализовать и нужно ли вообще. В итоге мы вместе выявили много логических неувязок, и придумали, как решить каждую из них. Это привело к тому, что сложность системы значительно выросла.

Бизнес-процесс регистрации чек-кода. Без его описания мы рискуем потерять при реализации исключительные ситуации: временный запрет регистрации кодов на сайте, оформление апелляции на непринятый код и тому подобные.

Для полного понимания, как должна работать система, мы нарисовали схемы каждого этапа и продумали, как отдельные элементы будут взаимодействовать между собой

Результат этой работы — схемы готовых бизнес-процессов и их техническое описание, по которым видны все связи между элементами. Без этих схем нельзя было двигаться дальше, потому что именно в них вся логическая часть работы с промокодами, акциями, партнёрами и дистрибьюторами заказчика. Мы согласовали схемы и перешли к самому важному — к прототипам.

Без прототипа нельзя оценить конечную стоимость готового продукта и дать оценку по времени. Прототип — отдельный, крайне важный и неотъемлемый элемент любой большой системы.

Прототипы

На основе всех получившихся схем мы сделали интерактивный прототип. Это значит, что он выглядит как готовая система, только не очень красивая. Прототип нужен для того, чтобы заказчик посмотрел на него, попробовал в работе и сказал — «Да, вот так я и хотел!».

Если говорить проще, то прототип — это та же схема бизнес-процессов, только в виде макета. Он чаще всего реализован максимально просто и нужен именно для того, чтобы можно было перед началом основных работ убедиться, что мы будем делать то, что нужно заказчику. Прототип менять гораздо дешевле, чем рабочую систему.

Прототипирование — важный этап, нужно сделать макет каждой страницы и каждого окна, которые может увидеть пользователь.
В этом проекте прототип состоит из примерно 250 страниц, окон и форм.

Когда есть такой документ, можно обойтись без проектирования и сразу перейти к реализации. Если подробного техзадания нет — то нельзя оценить проект ни по стоимости, ни по срокам. Даже в этой задаче нам пришлось заняться проектированием, несмотря на отличное ТЗ, потому что масштаб всей системы был колоссальным.

оценка и разработка

Мы сделали прототипы и показали их заказчику. После пары итераций и изменений в проекте, итоговый вариант был готов. Теперь мы могли просчитать стоимость и сроки реализации.

Затем назвали цену и началась самая сложная часть проекта — вышло дороже, чем планировал заказчик. Надо было попасть в бюджет.

Мы стали придумывать, как можно упростить систему, не потеряв при этом возможность масштабирования. Нужный результат получился быстро, потому что было полное понимание, что критично для проекта, а что нет. Если бы не было прототипа и предварительной работы по бизнес-процессам, всё пришлось бы делать с нуля.

В итоге мы отправили заказчику новое коммерческое предложение, уложились в бюджет, и при этом система осталась рабочей.

Затем начался основной процесс — разработка реальной системы на рабочих серверах, построение инфраструктуры, настройка баз данных, их синхронизация. Параллельно рисовали дизайн каждого элемента, страниц в целом и закладывали на будущее возможность масштабирования всей системы.

Прототип и дизайн: форма активации промокода
Прототип и дизайн: главная страница
Для каждого элемента прототипа — свой дизайн
Для каждого элемента прототипа — свой дизайн

Основная технологическая сложность, которую нужно было решить – это работа с базой промокодов. В базе хранятся все промокоды за последние 10 лет, сотни миллионов. И необходимо, по запросу пользователя, мгновенно выдавать информацию по любому из них.

Мы решили воспользоваться БД «Кассандра», она отлично подходит для решения подобных задач.

В процессе реализации мы использовали микросервисную архитектуру, поэтому система состоит из множества автономных модулей, что повышает надёжность и позволяет свободно горизонтально масштабировать систему, наращивая и распределяя её по большому количеству серверов.

итоги

Со стороны заказчика проект вёл компетентный технический специалист, который, к тому же, разбирался в бизнес-процессах и полностью понимал, что именно мы делаем и зачем. Это позволило нам сосредоточится на реализации качественного продукта.

После внедрения и запуска первого этапа мы встретились с заказчиком и согласовали работы по дальнейшей поддержке и сопровождению проекта. На момент написания этого кейса мы запустили новую механику с кассовыми чеками на белорусском портале, сделали адаптивную версию сайта и запустили российский портал с автопроверкой чеков в сервисе ФНС России.

Мы постоянно дорабатываем систему, стремясь довести её до изначально задуманного функционала. Усложняются и дополняются условия акций, введена отдельная система чек-кодов, произведена адаптация под экраны мобильных устройств.