Водолей
Кейс оцифровки работы автоматов по продаже питьевой воды
ООО «Водолей» — это сеть собственных павильонов по продаже питьевой воды и франчайзи. Все павильоны оснащены контроллерами, которые собирают информацию об их работе. Но данные с контроллеров не собирались в одном месте. В какой-то момент возникла проблема отсутствия мониторинга и контроля оплаты торговых точек для продажи франшиз. Заказчику было непонятно, как работают павильоны, сколько, действительно, воды продают. Компании нужна была прозрачная система сбора и учета данных.
Задачи
Разработать b2b-решение — платформу с личными кабинетами, в которых администраторы компании и франчайзи будут видеть данные по количеству проданной воды: сколько литров реализовали за день, месяц или любой другой период. Также в личном кабинете должно отображаться состояние павильонов и ошибки, которые могут возникнуть: закончилась вода, ошибка оплаты и т.д.

В рамках проекта мы с нуля разработали дизайн платформы, логику и сценарии использования, сделали необходимые интеграции с контроллером.
Сложность
Все данные в павильонах собирает небольшой восьмибитный контроллер, к которому подключены датчики и который умеет выходить в интернет. Интеграция с ним — задача не из легких, но мы справились.
Команда
Над проектом работали бэкенд - и фронтэнд-разработчики, DevOps инженер, дизайнер, аналитик, менеджер проекта. В работе использовались agile-методологии – Waterfall и Kanban.
Решение
Мы учли бизнес-задачи, стоящие перед клиентом, и постарались упростить процедуру сбора данных с контроллера.

В проекте мы предложили пять разделов — «Статистика», «События», «Павильоны», «Партнеры», «Счета».

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

Мы предложили выделить из монолитной архитектуры приложения микросервис-шлюз,  написанный на FastAPI, который бы брал на себя ответственность за обработку незашифрованных http-соединений, а также конвертацию присылаемых контроллером величин из низкоуровневого байтового формата в привычный для REST API и хорошо читаемый человеком json.

Монолитная часть приложения (Django+DRF) при этом оставалась ответственной за весь остальной функционал и продолжала использовать безопасный транспорт, поскольку без шифрования платформа не смогла бы работать с чувствительными данными пользователей. 

Далее нами был разработан протокол обмена данными, который принимал соединение от контроллера и перенаправлял стандартизированный запрос на монолитное приложение. Там осуществлялась обработка, регистрация событий и привязка к конкретным павильонам.
Дизайн
Для проекта мы предложили простой минималистичный дизайн. Он, на наш взгляд, лучше всего подходит для b2b-платформы, пользователям которой важны функциональность и удобство.
Результат
Разработали для заказчика простой и понятный сервис по сбору и анализу данных франчайзи. Платформа сделала бизнес прозрачнее и понятнее. Теперь у заказчика всегда под рукой есть нужная информация по работе каждого из партнеров. 

Готовый сервис помогает быстро масштабироваться и добавлять новых контрагентов. 

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