АРМ Диспетчер такси "Престиж"
Полноценная микросервисная архитектура для службы такси с Telegram-ботом, веб-интерфейсом и WinForms приложением
О проекте
Комплексная клиент-серверная система для автоматизации работы такси-службы "Престиж". Проект охватывает полный цикл от разработки архитектуры до сопровождения в production.
🏗️ Архитектурная эволюция:
Начальная архитектура:
- Монолитный Web-API сервер на ASP.NET Core Kestrel
- Единая база данных PostgreSQL
- Прямое взаимодействие клиентов с API
Микросервисная архитектура:
- Разделение на специализированные сервисы (заказы, водители, геолокация, уведомления)
- Apache Kafka для асинхронной межсервисной коммуникации
- API Gateway на Ocelot для маршрутизации и агрегации запросов
- Сервис обнаружения для динамической конфигурации
🔧 Технологический стек серверной части:
База данных и кэширование:
- PostgreSQL с оптимизированными схемами
- Dapper для высокопроизводительных запросов
- Хранимые процедуры для сложной бизнес-логики
- Redis для кэширования часто используемых данных
- Liquibase для управления миграциями базы данных
Коммуникация и реальное время:
- SignalR для WebSocket соединений с клиентами
- Apache Kafka как брокер сообщений между сервисами
- Асинхронная обработка событий системы
Безопасность и валидация:
- Ocelot API Gateway с аутентификацией и авторизацией
- FluentValidation для комплексной валидации запросов
- AutoMapper для безопасного маппинга объектов
- Rate limiting и защита от DDoS атак
Инфраструктура:
- Docker-контейнеризация всех сервисов
- Развертывание на Ubuntu сервере
- GitLab CI/CD для автоматизации сборки и деплоя
- Мониторинг и логирование всех компонентов
👥 Клиентские приложения:
WinForms приложение для диспетчеров:
- Реальный мониторинг заказов и водителей в реальном времени
- Управление распределением заказов
- Геолокация и отслеживание автомобилей
- Система уведомлений и оповещений
Веб-интерфейс на PHP для диспетчеров:
- Адаптивный интерфейс для работы с любого устройства
- Панель управления в реальном времени через WebSocket
- Управление заказами и водителями через браузер
- Статистика и аналитика в виде графиков и дашбордов
Telegram-бот для водителей:
- Прием и выполнение заказов
- Навигация и маршрутизация
- Статистика и отчетность
🎯 Ключевые особенности:
Производительность:
- Обработка 1000+ одновременных подключений
- Response time < 50ms для критических операций
- Автомасштабирование под нагрузку
Надежность:
- 99.9% uptime в production
- Резервное копирование и восстановление
- Отказоустойчивая архитектура
Безопасность:
- Шифрование PII (персональных данных) в базе данных
- JWT-токены для аутентификации с коротким временем жизни
- Хэширование паролей по алгоритму bcrypt
- Валидация и санитизация всех входящих данных
- Rate limiting для защиты от брут-форс атак
🏗️ Архитектурная эволюция:
Начальная архитектура:
- Монолитный Web-API сервер на ASP.NET Core Kestrel
- Единая база данных PostgreSQL
- Прямое взаимодействие клиентов с API
Микросервисная архитектура:
- Разделение на специализированные сервисы (заказы, водители, геолокация, уведомления)
- Apache Kafka для асинхронной межсервисной коммуникации
- API Gateway на Ocelot для маршрутизации и агрегации запросов
- Сервис обнаружения для динамической конфигурации
🔧 Технологический стек серверной части:
База данных и кэширование:
- PostgreSQL с оптимизированными схемами
- Dapper для высокопроизводительных запросов
- Хранимые процедуры для сложной бизнес-логики
- Redis для кэширования часто используемых данных
- Liquibase для управления миграциями базы данных
Коммуникация и реальное время:
- SignalR для WebSocket соединений с клиентами
- Apache Kafka как брокер сообщений между сервисами
- Асинхронная обработка событий системы
Безопасность и валидация:
- Ocelot API Gateway с аутентификацией и авторизацией
- FluentValidation для комплексной валидации запросов
- AutoMapper для безопасного маппинга объектов
- Rate limiting и защита от DDoS атак
Инфраструктура:
- Docker-контейнеризация всех сервисов
- Развертывание на Ubuntu сервере
- GitLab CI/CD для автоматизации сборки и деплоя
- Мониторинг и логирование всех компонентов
👥 Клиентские приложения:
WinForms приложение для диспетчеров:
- Реальный мониторинг заказов и водителей в реальном времени
- Управление распределением заказов
- Геолокация и отслеживание автомобилей
- Система уведомлений и оповещений
Веб-интерфейс на PHP для диспетчеров:
- Адаптивный интерфейс для работы с любого устройства
- Панель управления в реальном времени через WebSocket
- Управление заказами и водителями через браузер
- Статистика и аналитика в виде графиков и дашбордов
Telegram-бот для водителей:
- Прием и выполнение заказов
- Навигация и маршрутизация
- Статистика и отчетность
🎯 Ключевые особенности:
Производительность:
- Обработка 1000+ одновременных подключений
- Response time < 50ms для критических операций
- Автомасштабирование под нагрузку
Надежность:
- 99.9% uptime в production
- Резервное копирование и восстановление
- Отказоустойчивая архитектура
Безопасность:
- Шифрование PII (персональных данных) в базе данных
- JWT-токены для аутентификации с коротким временем жизни
- Хэширование паролей по алгоритму bcrypt
- Валидация и санитизация всех входящих данных
- Rate limiting для защиты от брут-форс атак
Детали реализации
Задачи проекта
- Разработка современного интерфейса
- Оптимизация производительности
- Адаптация под мобильные устройства
Достижения
- Полная автоматизация работы такси-службы
- Сокращение времени обработки заказа с 3 минут до 15 секунд
- Увеличение количества обрабатываемых заказов на 300%
- Микросервисная архитектура с горизонтальным масштабированием
- 24/7 мониторинг и автоматическое восстановление
- Интеграция с Telegram для мобильности водителей
- Кросс-платформенный веб-интерфейс для диспетчеров
Использованные технологии
ASP.NET Core
Microservices Architecture
Docker
Kubernetes
PostgreSQL
Dapper
Redis
Apache Kafka
SignalR
Ocelot API Gateway
Telegram Bot API
WinForms
PHP
JavaScript
WebSocket
Bootstrap
FluentValidation
AutoMapper
Liquibase
GitLab CI/CD
Ubuntu Server
Monitoring & Logging
Детали проекта
Клиент:
Такси "Престиж" ИП Басманов Е.Д.
Дата завершения:
11.03.2022
Ссылка на проект:
taxi-prestige.ru
Категория:
Веб-разработка