Компания СК Обсудить проект
Транспортная компания (50+ ТС, Красноярский край)

Fleet Monitor — мониторинг автопарка с ГЛОНАСС

AI: ML-классификация событий датчиков и аномалий. Прогноз простоев.
Технологии
Python 3.12, FastAPI, SQLAlchemy 2.0, asyncpg Next.js 16, React 19, TypeScript, TailwindCSS, shadcn/ui PostgreSQL 16 + PostGIS + TimescaleDB Redis 7 (PubSub + state) react-leaflet + OpenStreetMap ML-классификация аномалий
Обложка кейса Fleet Monitor — мониторинг автопарка с ГЛОНАСС
Задача

Диспетчеру нужен единый интерфейс для контроля автопарка в реальном времени: карта, статусы ТС, события датчиков, геозоны, история. До этого данные были разбросаны по личному кабинету ГЛОНАСС-провайдера и Excel-выгрузкам.

Решение

Собрали отдельный сервис, который держит постоянное WebSocket-соединение с системой мониторинга, мержит инкрементальные обновления в Redis и отдаёт фронту realtime-stream. UI на Next.js с интерактивной картой и боковой панелью ТС. AI-модуль классифицирует события датчиков и подсвечивает аномалии.

Результат

Диспетчер видит весь автопарк в одном окне. Время реакции на инцидент сократилось — критичные события (резкий слив топлива, выход за геозону, длительный простой) выделяются автоматически.

Архитектура

Collector держит постоянное WebSocket-соединение к системе мониторинга, парсит данные (координаты, скорость, датчики) и пушит в Redis. Фронт подключается к /ws/vehicles и получает snapshot + live-обновления.

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

Стек

  • Бэкенд: Python 3.12, FastAPI, SQLAlchemy 2.0, asyncpg, alembic
  • Фронт: Next.js 16, React 19, TS, Tailwind, shadcn/ui, react-leaflet
  • БД: PostgreSQL 16 + PostGIS (геометрия) + TimescaleDB (треки)
  • Кеш/PubSub: Redis 7
  • Внешний API: система мониторинга ГЛОНАСС/GPS

Обсудим ваш проект

Расскажите задачу — за 1-2 рабочих дня вернёмся с оценкой объёма, сроков и подхода.