Авторизация
Сброс пароля
Сервис мониторинга состояния зарядных станций для автомобилей
Заказчик: —

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



2. Описание реализации кейса и творческого пути по поиску оптимального решения
ТЕХНОЛОГИИ И АРХИТЕКТУРА
Backend
- Фреймворк для разработки web-интерфейса FastAPI / CSS / Client JS / Bootstrapx
 - База данных MongoDB, асинхронная ORM Beanie
 - Библиотека для сериализации и валидации данных Pydantic
 - Poetry для управления зависимостями
 - Динамические данные Redis DB. ПО комплекса выгружает все необходимые для веб-интерфейса данные в базу Redis, для работы с Redis используется библиотека Redis OM
 - Управление ПО комплекса осуществляется через REST API
 - Протокол общения клиента с веб-сервером HTTPS и Secure Web Sockets
 - Для работы приложения используется сервис клиента (ocpp-server), при его помощи в Redis загружаются данные от комплекса
 
Frontend
- Библиотека для разработки пользовательского интерфейса React
 - Управление состоянием Zustand
 - Компоненты пользовательского интерфейса Radix UI
 - Выполнение HTTP-запросов, кеширование данных TanStack Query, Axios
 - Маршрутизация TanStack Router
 - Таблицы и виртуализация TanStack Table, TanStack Virtual
 - Библиотеки для работы с формами в React React Hook Form, Yup, Hookform Resolvers
 - CSS и стилизация clsx
 - Визуализация данных в виде графиков Recharts
 - Работа с датами date-fns
 - Уведомления React Toastify
 - Интернационализация i18n
 - Дополнительные утилиты ahooks, Lodash, Immer, qs
 
Архитектура проекта
- ПО комплекса выгружает все необходимые для веб-интерфейса данные в базу Redis
 - Управление ПО комплекса осуществляется через REST API
 - Протокол общения клиента с веб-сервером HTTPS и Secure Web Sockets
 - Для работы приложения используется сервис клиента (ocpp-server), при его помощи как раз в Redis загружаются данные от комплекса
 
ЭТАПЫ РАБОТЫ
В связи со сжатыми сроками были оперативно подготовлены макеты, схема базы данных, изучено ТЗ и проведено согласование бэклога с клиентом. По результатам согласования выстроили приоритетность по задачам и запланировали сроки реализации.
Первый этап
В рамках первого этапа были реализованы приоритетные функциональные части системы.
- Авторизация
 - Перечень всех узлов зарядного комплекса
 - Состояние станций на странице мониторинга
 - Общее состояние комплекса на странице мониторинга
 
Второй этап
В рамках второго этапа был реализован базовый функционал.
- Балансировка конфигурации
 - Работа со списком пользователей зарядных станций
 - Иерархическая загрузка узлов на странице мониторинга
 - Функционал добавления новых узлов и редактирование
 - Раздел со списком транзакций
 
Третий этап
- Графики потребления на странице мониторинга
 - Отчет по потреблению электроэнергии пользователями
 
ФУНКЦИОНАЛ
Для авторизации в системе необходимо ввести почту и пароль. Учетные данные для авторизации создаются администратором и направляются пользователю.
После авторизации пользователь попадает в главное меню системы. В соответствии с настроенными правами учетной записи может видеть разделы, разрешенные для просмотра и настроек. Можно посмотреть общее состояние и загрузку узлов, состояние станций и графики потребления.
Работа с пользователями потребляющие электроэнергию. Каждому пользователю присваивается ключ RF ID, по которому фиксируется количество потребляемой электроэнергии.
Состояние станций и график потребления
После авторизации пользователь попадает в главное меню системы. В соответствии с настроенными правами учетной записи может видеть разделы, разрешенные для просмотра и настроек. Можно посмотреть общее состояние и загрузку узлов, состояние станций и графики потребления.
Работа с узлами зарядного комплекса
В системе есть возможность создания и корректировки узлов зарядного комплекса.
Управление станциями
Доступен просмотр и создание зарядных станций, с возможностью фильтрации.
Управление пользователями
Реализована работа с пользователями потребляющими электроэнергию. Каждому пользователю присваивается ключ RF ID, по которому фиксируется количество потребляемой электроэнергии.
Отчеты
В разделе «Отчеты» можно посмотреть, сколько электроэнергии потребляет пользователь за период. Присутствует фильтрация по пользователям, RF ID и периоду. Также можно просуммировать потребление по RF ID И ФИО. Есть возможность скачать отчет в csv-формате.
Транзакции
Ведется полный учет транзакций в системе.



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



4. Заключение
Для решения этой задачи в кратчайшие сроки командой Spectr было оперативно изучено техническое задания от заказчика и подготовлены макеты будущей системы. Вся проработка велась в плотном взаимодействии с клиентом.


