Система автоматизации
службы такси

Комплексное программное решение для управления заказами, диспетчеризации и взаимодействия водителей, клиентов и операторов.

Разработали единую информационную систему, объединяющую серверную часть, систему администрирования, рабочее место диспетчера, мобильное приложение водителя и приложение клиента.

 

Результаты проекта

270
Заказов в сутки
80
Активных водителей
7
Лет эксплуатации
146 000+
Пользователей системы
1,65 млн
Выполнено заказов за всё время
10,8 млн км
Пробег с пассажирами

Разрабатываем системы не только для такси

Подобные решения применимы в логистике, доставке, производстве, сервисных компаниях и других сферах бизнеса.

Создаём программное обеспечение под конкретные задачи: от отдельных Windows- и мобильных приложений до комплексных систем с единой серверной частью.

Краткая информация о проекте

Параметр Содержание
Отрасль Такси и пассажирские перевозки
Тип проекта Комплексная система диспетчеризации
Приложения Диспетчер, водитель, клиент
Платформы Windows, macOS, Linux, Android, iOS
Сервер API, обработка заказов, маршрутизация
Эксплуатация С 2019 года

Задача проекта

Создать единую систему для управления работой службы такси, обеспечивающую взаимодействие диспетчеров, водителей и клиентов.

Система должна обеспечивать приём и автоматическое распределение заказов, управление поездками, расчёт стоимости, отслеживание автомобилей и контроль работы службы в реальном времени.

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

Система распределения заказов такси (Сервер, приложение водителя, приложение клиента, приложение диспетчера)

Серверная часть

Схема серверной части: API, вебсокет, тикер раздачи и служба присутствия работают с Redis, базой данных и внешними сервисами СЕРВЕР API (PHP, Yii3) заказы · раздача · тарифы · цена админ-панель · отчёты · СМС Вебсокет (Workerman) доставка событий приложениям приём координат водителей Тикер раздачи цикл раздачи заказов раз в секунду Служба присутствия снятие водителя с линии при потере связи Redis шина событий и индекс водителей База данных заказы, водители, клиенты, тарифы Внешние сервисы АТС · СМС-шлюзы · OSRM карты · геокодеры

Сервер объединяет все приложения в единую систему, обрабатывает заказы и управляет их распределением между водителями.

Автоматический подбор автомобиля учитывает расстояние до клиента, время подачи, приоритеты водителей, зоны обслуживания и другие параметры.

Система интегрирована с телефонией, картографическими сервисами и СМС-шлюзами. Для построения маршрутов используется собственный сервер OSRM.

Работоспособность основных компонентов контролируется автоматически, а при обнаружении сбоев система отправляет уведомления.

Панель администратора

Веб-панель для управления всеми основными процессами службы такси. Доступна из любого браузера.

Основные возможности:

  • Управление водителями, автомобилями, клиентами и компаниями.
  • Настройка тарифов, скидок, бонусов, договоров и способов оплаты.
  • Управление заказами, просмотр истории поездок и маршрутов на карте.
  • Контроль платежей, балансов и задолженностей.
  • Формирование отчётов с экспортом в Excel и PDF.
  • Настройка прав доступа сотрудников, рабочих мест диспетчеров и телефонных линий.
  • Управление зонами обслуживания и контроль распределения заказов.

Панель объединяет инструменты администрирования, финансового учёта и контроля работы службы такси.

Рабочее место диспетчера

  • Рабочее место диспетчера: Доска заказов
  • Рабочее место диспетчера: Заказ и водитель
  • Рабочее место диспетчера: Карта машин
  • Рабочее место диспетчера: Дневной режим

Кроссплатформенное приложение для управления заказами и контроля работы службы такси в реальном времени.

Диспетчер видит текущие заказы, расположение автомобилей, статусы поездок и доступных водителей в едином интерфейсе.

Система помогает быстрее оформлять заказы, автоматически подбирать подходящие автомобили и контролировать выполнение поездок.

Основные возможности:

  • Приём и оформление заказов, включая интеграцию с телефонией.
  • Автоматическое и ручное назначение водителей.
  • Отображение автомобилей и заказов на карте.
  • Контроль статусов поездок и взаимодействие с водителями.
  • История заказов, поиск и работа с клиентскими данными.

Приложение водителя

Мобильное приложение для Android и iOS, обеспечивающее взаимодействие водителя с диспетчерской системой в реальном времени.

Основные возможности:

  • Получение, принятие и отклонение заказов с указанием времени подачи.
  • Управление статусами поездки: прибытие, начало и завершение.
  • Карта, навигация и передача геолокации.
  • Встроенный таксометр, формирование и печать чеков.
  • История поездок, статистика и настройки.

Приложение автоматически синхронизирует данные с сервером и восстанавливает актуальное состояние после потери соединения.

  • Приложение водителя: Вход водителя
  • Приложение водителя: Линия и работа
  • Приложение водителя: Предложение заказа
  • Приложение водителя: Таксометр
  • Приложение водителя: Чек поездки

Приложение клиента

  • Приложение клиента: Вход по номеру телефона
  • Приложение клиента: Заказ и цена до поездки
  • Приложение клиента: Поиск машины
  • Приложение клиента: Водитель в пути
  • Приложение клиента: Детали поездки

Мобильное приложение для Android и iOS, позволяющее самостоятельно заказывать такси и отслеживать выполнение поездки.

Основные возможности:

  • Авторизация по номеру телефона, через Google или Apple.
  • Выбор адресов на карте и предварительный расчёт стоимости и маршрута.
  • Оформление и отмена заказа.
  • Отслеживание автомобиля и статуса поездки в реальном времени.
  • Информация о водителе и автомобиле, связь с водителем.
  • История поездок и просмотр маршрутов.

Все изменения по заказу автоматически синхронизируются с диспетчерской системой и приложением водителя.

Технические задачи и решения

   Логика отдельно от доставки.

Все правила живут в одном месте — сервере приложений, а канал связи с телефонами только доставляет сообщения и ничего не решает. Поэтому правки правил выкатывают, не разрывая соединения с водителями, а каждое действие водителя подтверждается ответом сервера. Рост нагрузки решается добавлением узлов связи и обработчиков без переписывания

   Один заказ — три экрана.

Клиент, водитель и диспетчер должны видеть один и тот же статус. Все изменения идут через один общий поток, устаревшие сообщения не показываются, а после обрыва связи приложение просто спрашивает у сервера. Экраны не расходятся, перезапуск сервера их не ломает.

   Связь пропала — водитель не потерян.

Обрыв не должен ни оставить водителя «на линии» навсегда, ни лишить его места в очереди. Система снимает его с линии, только когда оборвались все соединения, а при возвращении возвращает статус и место.

   Деньги и двойное нажатие.

Двойной щелчок или два оператора не должны провести платёж дважды. Перед расчётом запись блокируется и условия проверяются заново, деньги считаются в целых центах. Так же защищён заказ клиента: два нажатия — один заказ.

Технологии и архитектура

PHP / Yii3 • Redis • MariaDB • Electron • TypeScript • Flutter • Dart • WebSocket • OSRM

   Backend:

PHP 8.3, фреймворк Yii3 (маршрутизация, внедрение зависимостей, консольные команды) и собственный пакет для админ-панели; вебсокет-сервис на Workerman (PHP); тикер раздачи и обработчик присутствия — отдельные процессы; PDF-отчёты — Dompdf.

   Database:

MySQL/MariaDB (рабочая база и архив заказов по годам), Redis 7 (потоки событий, GEO-индекс водителей, одноразовые билеты, блокировки, кеш настроек); подготовлен переход на PostgreSQL 18 с PgBouncer, миграции схемы — yiisoft/db-migration.

   Windows:

Electron 33 и TypeScript (рабочее место диспетчера), Leaflet (карта), sql.js (локальный поиск адресов), electron-builder (установщик); тот же код собирается под macOS и Linux.

   Android, iOS:

Flutter 3.44 и Dart 3.12 (приложения водителя и клиента на общем пакете), Kotlin и Gradle для оболочки, фоновая служба и геолокация (flutter_background_service, geolocator), карты flutter_map, защищённое хранилище, печать чека на Bluetooth-термопринтере (протокол ESC/POS).

   API:

REST/JSON (/api/v2) по HTTP, вход по ключу устройства, одноразовые билеты на вебсокет (30 секунд); события вниз и координаты вверх — по WebSocket; интеграции: OSRM (маршруты), Mapbox, Google Places, Яндекс и DaData (карты и подсказки адресов), несколько СМС-шлюзов, АТС.

   Инфраструктура:

Linux, nginx и PHP-FPM, systemd; Docker Compose для разработки; собственный сервер OSRM с картой Эстонии; серверный кеш тайлов карты; скрипт проверки состояния сервера; автотесты на Python (интеграционные), Flutter (приложения), сквозные проверки Electron через Chrome DevTools Protocol, намеренная порча кода для проверки самих тестов.

 

Разработка не заканчивается запуском

Система работает с 2019 года и продолжает развиваться. Мы регулярно обновляем приложения, добавляем новые возможности и совершенствуем существующие функции.

Тарифы, правила распределения заказов и другие настройки можно изменять без остановки работы системы.

Состояние серверов и основных служб контролируется автоматически. Регламентные операции выполняются без участия сотрудников.

Каждое обновление проходит проверку примерно 2 500 автоматическими тестами, что помогает сохранять стабильность системы при её развитии.

Как мы работаем

01

Изучаем задачу

Разбираемся в бизнес-процессах компании, определяем требования и задачи автоматизации.

02

Проектируем решение

Разрабатываем архитектуру системы, определяем необходимые приложения, модули и интеграции.

03

Разрабатываем по этапам

Разбиваем проект на этапы с согласованными сроками, стоимостью и результатом каждого этапа.

04

Запускаем и сопровождаем

Внедряем систему, обеспечиваем техническую поддержку и при необходимости развиваем функциональность.

Оплата по мере выполнения согласованных этапов работы.

Свяжитесь с нами

Разрабатываем CRM и ERP-системы, Windows, web и мобильные приложения для автоматизации бизнес-процессов.

Не обязательно иметь готовое техническое задание. Расскажите о вашей задаче. Мы предложим вариант решения и предварительно оценим стоимость разработки.