Разработка приложений для такси

Разработка приложений для такси

2 июля 2020

Не все представляют, что происходит после того, как клиент позвонил в службу такси или заказал автомобиль через приложение. Если в службе нет свободных машин, она передает заказ в другую компанию, с которой сотрудничает напрямую или через агрегатор такси. Как же все это устроено: как операторы и водители не путаются, а машины приезжают без задержек? Ну, или почти без задержек.

Для качественной работы агрегаторам необходимо специализированное программное обеспечение. Рассказываем, как оно устроено на примере «Резидент Такси». Служба состоит из сервера, сайта, CRM, блока контроля водителей и автомобилей, мобильных приложений iOS и Android.

Технологии и фреймворки

01 Технология linux Linux Операционная система.
02 Технология apache Apache Веб-сервер.
03 Технология mysql MySQL База данных.
04 Технология php PHP Язык программирования версии 7 с модулями — на нем написана серверная часть сайта.
05 Технология yii Yii PHP-фреймворк версии 1.1.19, который используется для построения серверной части сайта.
06 Технология модули php Модули PHP php-common, php-pear, php7.1-common, php7.1-curl, php7.1-dev, php7.1-gd, php7.1-json, php7.1-mbstring, php7.1-mysql, php7.1-odbc, php7.1-opcache, php7.1-readline, php7.1-xml, php7.1-zip.
07 Технология html5 HTML Язык гипертекстовой разметки, на котором написаны шаблоны страниц и web-интерфейс.
08 Технология js5 JavaScript Язык программирования, который используется для создания динамически обновляемого контента на страницах сайта.
09 Технология objective-c Objective-C Язык программирования, на котором написано мобильное приложение для iOS.
10 Технология java Java Язык программирования, на котором написано мобильное приложение для Android.
11 Технология bash Bash Командная оболочка, с помощью которой выполняются некоторые команды по обслуживанию сервера.

Браузер пользователя и web-интерфейс сайта взаимодействуют через сетевой протокол HTTPS, который шифрует передаваемые данные.

Приложение PHP обрабатывает запросы клиента через URL. Когда поступает GET-запрос, сервер извлекает необходимую информацию из базы данных MySQL, при необходимости обрабатывает ее, комбинирует с шаблонами HTML и возвращает страницу клиенту. При поступлении POST-запросов сервер выполняет контроль информации, полученной от пользователя в форме данных сеанса, и при отсутствии ошибок обновляет информацию в базе данных MySQL.

Мобильные приложения отправляют запросы на серверную часть и получают ответы в формате обмена данными JSON. Для подсказок адресов используется API Яндекс.Карт, а для расчета расстояния и времени маршрута — API Google Directions.

Сайт

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

  • Частник может получить информацию о поездке и вызвать машину.
  • Корпоративные клиенты могут заказать машину, отслеживать статус и просматривать историю поездок.
Резидент Такси главная
Резидент Такси корпоративным клиентам
Резидент Такси оформление заказа

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

Резидент Такси закрытые заказы
Резидент Такси интерфейс оператора

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

Резидент Такси создание заказа оператором

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

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

Когда оператор указал адреса «Откуда» и «Куда», на карте строится маршрут.

Резидент Такси построение маршрута

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

Резидент Такси текущие заказы

Список отправленных электронных чеков содержит информацию, полученную от сервиса Orange Data.

Резидент Такси отправленные чеки

CRM-система

Резидент такси

Популярные агрегаторы такси работают с частными водителями, интерес которых сводится к быстрому заработку. Автомобили не проходят ежедневный технический контроль, да и состояние здоровья водителя никто не проверяет. Итог — при всей дешевизне такси становится небезопасным. «Резидент Такси» проводит предрейсовые медицинские и технические осмотры, допуская к работе только исправные автомобили и надежных водителей.

Черенков Валерий Анатольевич, основатель «Резидент Такси»

Через меню «Для таксопарков» владелец аккаунта «Резидент Такси» составляет списки транспортных средств, диспетчеров, медиков, механиков, водителей. Затем добавляет организации и указывает связи организаций с указанными элементами базы данных. Данные о транспортных средствах и водителях можно импортировать из Яндекс.Таксометра.

Регистрация в CRM-системе выполняется по номеру мобильного телефона, на который поступает SMS с паролем. При первой авторизации CRM-система привязывает пользователя к номеру и формирует список его ролей.

Резидент Такси вход в CRM систему

Владелец таксопарка может самостоятельно зарегистрироваться в CRM-системе, указав ФИО и номер мобильного.

Резидент Такси регистрация в CRM системе

После авторизации владелец попадает в список открытых электронных путевых листов своего аккаунта.

Резидент Такси путевые листы

Пункт меню «Справочники» позволяет добавить сотрудников и транспортные средства. Пункт меню «Аккаунт» позволяет добавить организации, изменить настройки, просмотреть сообщения. В списке организаций можно:

  • просмотреть и добавить компании;
  • установить их связи с диспетчерами, медицинскими сотрудниками, механиками, водителями, транспортными средствами;
  • сформировать договоры;
  • установить связь между транспортными средствами и водителями;
  • пополнить баланс;
  • просмотреть список платежей;
  • установить индивидуальную стоимость услуг для организации;
  • указать параметры внешних систем;
  • просмотреть топливные транзакции и штрафы.
Резидент Такси организации

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

Резидент Такси карточка организации

Для новой организации предусмотрен тестовый период в 30 дней. В течение этого времени можно знакомиться со всеми возможностями CRM-системы и открывать электронные путевые листы без внесения средств на счет организации. После тестового периода открыть путевой лист при нулевом остатке на счету невозможно.

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

Отчеты

Можно сформировать сводные отчеты и отчеты по организациям:

  • платежи;
  • штрафы;
  • ремонтные работы по транспортным средствам и исполнителям;
  • знание правил дорожного движения.
Резидент Такси отчеты CRM системы

Путевые листы

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

Медицинский работник осматривает водителя в начале рабочего дня, фиксирует результаты и заверяет их электронно-цифровой подписью. Если водителя не допустили к работе, путевой лист закрывают.

Аналогичные возможности есть у механика: он проверяет транспортное средство, регистрирует результаты и заверяет их электронно-цифровой подписью. Если автомобиль неисправен, путевой лист закрывается и автоматически создается запись о неисправности.

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

Резидент Такси правила дорожного движения

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

Различные роли пользователя в разных путевых листах отражаются в столбце «Доступные роли».

Резидент Такси закрытые путевые листы

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

01 Человек и галочка Стандартный режим Каждый этап отмечает пользователь, обладающий соответствующей ролью. Один пользователь может совмещать несколько ролей.
02 Один ключ и рука Режим частичного постоянного делегирования ролей водителю Любому водителю могут быть переданы другие роли. Свои действия водитель выполняет самостоятельно, действия остальных ролей должны выполнить пользователи, обладающими этими ролями.
03 Ключи и рука Режим постоянного полного делегирования ролей водителю Любому водителю могут быть переданы все роли — диспетчер, медик, механик.
04 Часы 12-20 Режим временного полного делегирования ролей водителю При создании путевого листа диспетчер может включить делегирование и указать дату его окончания. Предрейсовый осмотр первого путевого листа и послерейсовый осмотр последнего путевого листа должны выполнить пользователи с соответствующими ролями, остальные действия водитель выполняет самостоятельно.
05 Техподдержка Режим полного делегирования ролей диспетчерам Любому диспетчеру могут быть переданы роли медика, механика и водителя, действия которых диспетчер выполняет самостоятельно.
Резидент Такси добавление путевого листа

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

  • для предрейсовых осмотров — при открытии путевого листа;
  • для послерейсовых осмотров — при проставлении отметки о возвращении водителя в гараж.

Время прохождения различных этапов формируется со случайным сдвигом до 10 минут между этапами. В режимах с делегированием для каждой из ролей должен быть выбран хотя бы один пользователь. Чтобы выбрать пользователя, нужно установить флажок «Делегировать роль».

Резидент Такси механики

Владелец аккаунта или пользователь с соответствующей ролью может формировать журналы:

Резидент Такси открытые путевые листы

Транспортные средства

Неисправность автомобиля можно указать в путевом листе во время технического осмотра или указать вручную в любое время.

Резидент Такси неисправности

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

Резидент Такси список ремонтных работ

Если все ремонтные работы завершены, и в поле «Техническое состояние после ремонта» указано «Исправен», автомобиль возвращается в список работающих — для него можно открывать путевые листы. В противном случае открыть этому ТС путевые листы невозможно.

Ремонт

В момент открытия путевого листа в кабинете водителя создается акт приема-передачи транспортного средства. Акт работает подобно мобильному приложению каршеринга — в нем фиксируются недочеты автомобиля до начала работы.

Механик проводит осмотр, а водитель с его слов заполняет акт на своем смартфоне. Акт механик заверяет в своем личном кабинете. Во время осмотра автомобиля оцениваются его внешний вид и техническое состояние, транспортное средство фотографируют. Если механик не нашел дефектов автомобиля, акт закрывают. Если механик обнаружил поломку, автомобиль незамедлительно отправляют в ремонт. По каждой пометке о неисправности механик создает заявку на ремонт на собственной или сторонней станции технического обслуживания.

По заявке мастер СТО составляет заказ-наряд, указывает специализацию автослесаря, выбирает специалиста из списка, заполняет перечень запчастей, материалов и работ. Автослесарь видит список назначенных заказов-нарядов, нажимает кнопку «Начать работу» для выбранного заказа. Во время ремонта слесарь может изменять виды запчастей, материалов и работ. Когда починка завершена, автослесарь нажимает кнопку «Завершить работу». После этого мастер может закрыть наряд.

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

Онлайн-касса

Служба арендует кассу у компании Orange Data. Касса встроена в CRM, доступна в интерфейсе водителя и соответствует всем актуальным поправкам к 54-ФЗ.

После открытия путевого листа водитель формирует электронный чек по заказу. Для этого он вводит номер телефона клиента и сумму поездки. Если клиент отказывается давать номер, водитель указывает свой.

Сформировать электронный чек может и диспетчер при наличии путевого листа водителя.

Данные отправляются фискальному органу (оператору фискальных данных), а водитель или диспетчер получают QR-код, который можно считать с помощью мобильного телефона и проверить в специальном приложении.

Мониторинг

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

Состав модуля:

  • прием данных GPS-трекеров;
  • API для получения информации по номеру трекера или ID автомобиля;
  • интеграция CRM со сторонним сервисом GPS-позиционирования;
  • управление автомобилем через протокол трекера.

Заказы

Вызвать машину можно на сайте или через мобильное приложение «Резидент Такси». Адрес можно ввести вручную, а можно определить местоположение на карте с помощью мобильной геолокации. Все заказы сохраняются в мобильном приложении, их можно повторить.

Восклицательный знак в круге

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

Есть несколько классов автомобилей: стандарт, комфорт и бизнес. Можно заказать автомобиль с детским креслом. Есть и другие опции: «кузов универсал», «перевозка животного».

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

Проделанная работа

С сентября 2017 года разработчики EDISON превратили простое диспетчерское ПО в службу агрегатора.

01 Техподдержка Личный кабинет для оператора и администратора.
02 Адрес заказа Форма заказа, в которой есть автодополнение адресов, можно выбрать адрес из списка сохраненных и привязанных к номеру телефона клиента.
03 Маршрут Построение маршрута на карте.
04 Отправка заказов в таксометр Отправка созданных на сайте заказов в Яндекс.Таксометр.
05 Результат теста Получение информации о выполнении заказов водителями из Яндекс.Таксометра.
06 Мобильная qwerty Добавление в базу сайта заказов, созданных в мобильном приложении.
07 Три архитектора Парсинг информации о статусах водителей со страницы «Смена» Яндекс.Таксометра.
08 Обоснованная цена Получение и обработка информации о транзакциях по топливным картам и картам для мойки из сервиса 4TRUCK.
09 Восклицательный знак Получение и обработка информации о нарушениях правил дорожного движения.
10 Кубики и кран Интеграция со службами такси Ритм, РБТакси, Nowtaxi, Максим, Мультипасс.
11 Настройки и корпус API для обмена заказами с сайтом.
12 Шестеренки и отвертка Доработка протокола API для приема заказов Gett, Ситимобил.
13 Билет Подключение онлайн-кассы Orange Data для отправки электронных чеков по заказам.
14 Функция Рефакторинг кода и миграция проекта с PHP 5.3 на PHP 7.1.
15 Облачная CRM CRM для управления парком транспортных средств и персоналом, подготовки путевой документации и ее облачная версия.
16 Перечень на странице Электронные путевые листы водителей.
17 Страница с копирайтом ЭЦП документов ответственными лицами.
18 Вопрос на документе Проверка знаний правил дорожного движения.
19 Банковская карта и шестеренка Блокировка и разблокировка топливных карт, карт для мойки при закрытии электронного путевого листа.
20 Монета в ладони Пополнение внутреннего счета организации в CRM.
21 Часы и доллар Ежедневное списание стоимости услуг по каждому активному транспортному средству организации.
22 Материально-техническая база Фиксация неисправности транспортного средства вручную или во время ежедневного технического осмотра.
23 Настройки Ремонтные работы с заменой деталей при неисправности транспортного средства.
24 Копия Отчеты по платежам, штрафам, результатам проверки знаний ПДД.
25 Создание заказа оператором Создание заказа оператором.
26 Распределение Обмен заказами между пользователями облачного сервиса с помощью Яндекс.Таксометра.