ЛЦТ 2024 - Сервис мониторинга и адаптивного распределения заявок на обслуживание от маломобильных пассажиров
2024
Хакатоны
Проблема и бриф
Команда Московского метрополитена, отвечающая за Центр мобильности, пришла на хакатон «Лидеры цифровой трансформации 2024» с задачей разработки сервиса для мониторинга и адаптивного распределения заявок на обслуживание маломобильных пассажиров. На тот момент у команды не было удобного веб-сервиса, а многим важным процессам не хватало достаточного уровня автоматизации.
Бриф
О проекте
За 13 дней хакатона мы реализовали 38 различных сценариев и разработали 11 согласованных между собой модулей: заявки, распределение, инспекторы, пассажиры, уведомления, журнал событий, доступ в систему, аналитика, справочники, веб-приложение инспектора и страница подачи заявки.
Веб-приложение инспектора
В веб-приложении инспектора мы стремились сделать работу с заявками более наглядной. Чтобы мотивировать инспектора отмечать станцию, на которой он находится в данный момент, мы решили отображать маршрут поэтапно, открывая следующие станции только после прибытия на текущую.
Видео
Подача заявки пассажиром
Помимо поставленных задач мы также предложили улучшения в подаче заявки пассажирами, пересмотрев некоторые процессы. Среди ключевых изменений — возможность отслеживания статуса заявки пассажиром и соблюдение принципов цифровой доступности.
Видео
Админ-панель
Разработанные модули: - Заявки - Распределение - Инспекторы - Пассажиры - Уведомления - Журнал событий - Доступ в систему - Аналитика - Справочники
Архитектура и стек технологий
Система состоит из следующих частей: - Frontend приложение на React. Представляет собой многомодульное монолитное приложение, которое взаимодействует с Backend посредством API. - Веб-сервер Caddy, который выполняет функцию обратного прокси сервера и обеспечивает доступ к системе по протоколу https. - Backend приложение на Spring. Также представлено в виде многомодульного монолитного приложения. - База данных PostgreSQL. Особенности: - Для взаимодействия клиента и сервера используется WebSocket, что обеспечивает возможность обновления данных в реальном времени. - Система не имеет внешних зависимостей и может работать в полностью изолированной среде. - Для построения интерфейса используется собственная библиотека UI компонентов, что обеспечивает высокую гибкость при разработке. - Наличие полноценного REST API предоставляет возможность для интеграции с любыми другими системами
Роль в проекте
Я выступал в роли FullStack-разработчика. Отвечал за архитектуру приложения, разработку backend и frontend, деплой и написание документации.
Деплоймент
Настроен CI/CD пайплайн с использованием GitHub Actions для автоматической сборки, и деплоя приложения. Каждый коммит в репозитории автоматически запускает процесс сборки и деплой на staging или production сервер.