Разработка мобильного приложения для сервиса такси
Вводные данные о клиенте
Клиент — региональный сервис такси с гибридной моделью: собственные машины + партнёрские автопарки под единым управлением.
РФ
Пассажирские перевозки
Руководитель проекта, Бизнес-аналитик, 2 Backend-разработчика, 2 Mobile-разработчика, Frontend-разработчик, QA-инженер
- PHP
- MySQL
- Redis
- Nginx
- React Native
- Vue
- Docker
- Yii 2
- Socket.io
- Google/Yandex Maps API
Контекст и запрос клиента
Заказчик пришел к нам с серьезным вызовом: локальный рынок такси захватил огромный агрегатор. Со временем условия для водителей и автопарков стали абсолютно невыгодными.
Чтобы занять свою долю рынка, клиент хотел построить альтернативную модель: сервис, где водителям и партнёрам будет выгодно работать, а пассажиры получат понятный, предсказуемый опыт.
Задачи
Для запуска такой системы нам нужно было решить три ключевые задачи:
Спроектировать логику распределения заказов
Нам предстояло разработать кастомный алгоритм очередей, который сбалансирует интересы всех сторон. Чтобы обеспечить пассажиру минимальное время подачи, а водителям — прозрачную загрузку без холостых пробеговАвтоматизировать контроль и комплаенс
Для стабильной работы сервиса важно, чтобы у каждого водителя всегда были актуальные документы. Поэтому нам нужно было проработать механику автоматической проверки мед.справки и техосмотраСинхронизировать цифру и офлайн
Особенность модели предполагала сохранение диспетчерской службы: часть заказов приходила через приложение, часть — по телефону. Мы должны были объединить оба канала чтобы операторы работали с единой базойЧто сделали
Алгоритм распределения: прозрачность как инструмент лояльности
Главным элементом системы стал кастомный алгоритм управления очередями. Это был период до появления массовой ИИ-автоматизации, когда вся логика строилась на математике и доступных API карт — поэтому особенно важно было продумать модель, в которой интересы всех сторон соблюдаются честно и предсказуемо.Мы сразу отказались от классической схемы «кто быстрее нажмёт» — она создаёт неравные условия для водителей и не всегда удобна пассажирам. Из-за гонки за заказом водители часто пропускают детали и комментарии, что увеличивает процент отказов и время подачи.
Вместо этого мы внедрили:
- Динамическое геозонирование. Мы разделили город на 70+ функциональных районов. Это позволило системе точнее анализировать баланс спроса и предложения в каждой точке
- Очереди по зонам. Для каждой зоны формируется своя очередь. Водитель может встать в очередь в 5 зонах одновременно (текущая + 4 смежные). Это обеспечило максимальный охват при минимальном холостом пробеге
- Последовательный опрос водителей. Вместо «гонки за заказом» работает фиксированный цикл: если первый водитель не принимает заказ за 15 секунд, запрос автоматически уходит следующему. Это ускоряет подачу и исключает спорные ситуации
Диспетчерская и управление точками контакта
Хотя приложение уже запускалось, значительная часть заказов всё ещё приходила через телефон. Поэтому мы усилили диспетчерскую и сделали её полноценной частью общей цифровой системы:
- Интерфейс для работы с вызовами. Мы разработали веб-интерфейс, который интегрируется с телефонией. При звонке система мгновенно идентифицирует клиента, подтягивает историю поездок и любимые адреса, сокращая время оформления заказа
- Плавная миграция клиентов в приложение. Чтобы постепенно снижать нагрузку на колл-центр, мы внедрили автоматическую SMS-рассылку после звонка. Клиент получает детали заказа и ссылку на приложение — по ней он сразу открывает экран с информацией о поездке: водитель, автомобиль, время подачи, текущее местоположение машины. Такой мягкий сценарий помогает органично переводить клиентов в digital-канал, одновременно снижая операционные затраты и повышая качество сервиса.
- Поездки «по счётчику». Помимо заказов через приложение, сервис поддерживал формат «поездки от борта». В этом режиме водитель включает встроенный счётчик в приложении, и система в реальном времени рассчитывает стоимость поездки: по расстоянию, времени в пути и текущим коэффициентам. Все такие поездки автоматически сохраняются в общей базе, формируют корректную отчётность и участвуют в аналитике — без разрывов между офлайн- и онлайн-каналами.
Чтобы сервис мог расти без увеличения операционного штата, мы разработали полноценный личный кабинет для партнёров — владельцев автопарков. Это превратило систему из локального приложения в масштабируемую B2B-платформу.
Делегирование управления
Партнёры получили удобные инструменты для самостоятельной работы со своими сотрудниками: добавление водителей, управление автомобилями, распределение смен, контроль активности. Это снизило нагрузку на заказчика и позволило управлять сотнями исполнителей без расширения команды.Автоматизированный комплаенс
Система автоматически отслеживает сроки действия водительских удостоверений, медсправок и техосмотров. Если документ просрочен, профиль блокируется до обновления данных. Такой механизм снижает юридические риски и обеспечивает стабильное качество сервиса без ручного контроля.Оперативная работа с обратной связью
В кабинет встроены инструменты для обработки обращений пассажиров: партнёр видит жалобы, комментарии, историю поездок и может быстро реагировать — от уточнения деталей до принятия мер по конкретному водителю или автомобилю. Это делает качество обслуживания управляемым и прозрачным.Инженерные вызовы и решения
Стабильность синхронизации в условиях нестабильной связи
Для real-time-сервисов критично, чтобы система всегда знала, доступен водитель или нет. На практике это осложнялось тем, что мобильный интернет в городе работает неравномерно — обрывы могут происходить в тоннелях, на парковках, в плотной застройке.Как решили
Мы развернули сокет-сервер для мгновенного обмена статусами и проработали механику устойчивости к обрывам. Если сигнал временно пропадает, система не исключает водителя из очереди сразу — сессия удерживается короткое время, что предотвращает «выпадение» активных исполнителей и снижает хаос в распределении заказов.
Точность времени подачи и влияние на UX
Картографические сервисы не всегда корректно учитывают локальные пробки при расчете подачи. Это сильно влияло на ожидания пассажиров и повышало долю отмен.Как решили
Мы внедрили гибридный механизм подтверждения подачи: система предлагает расчётное время, а водитель может его скорректировать под фактическую ситуацию на дороге.Что в итоге?
Проект стал для нас первым крупным Uber-like решением и дал прочную экспертизу в real-time механиках: работе с геозонами, очередями, распределением нагрузки и отслеживанием статусов в режиме реального времени.
Дальше мы масштабировали этот опыт на других задачах — от приложения по доставке еды до внушительной HR-системы промышленного предприятия и нескольких внутренних логистических решений.
Если вашему бизнесу нужна надёжная IT-система с динамическими сценариями, распределением исполнителей или управлением персоналом — команда iMedia Solutions поможет разработать устойчивое, понятное, сильное решение!
-
Давайте знакомиться! Расскажите о своём проектеНе знаете, что рассказать нам о проекте?Тогда скачайте подготовленные нами вопросы, которые помогут нам лучше узнать Ваши требования к проекту.Скачать бриф-анкету на разработку сайта
-
Хотите больше узнать о нас? С радостью всё расскажем!