16 декабря 2016

Мерси за хорошее такси

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

Noveo taxi

Приложение AzzApp представляет собой агрегатор такси для таксопарков. Заказчик, французская компания Pragmatik, много лет назад уже разрабатывал похожую систему, и определенное представление о том, что из себя должно представлять приложение, у него было. Однако с тех пор технологии шагнули далеко вперед, да и услуги такси значительно эволюционировали, поэтому проект стартовал с этапа аналитики: специалисты Noveo систематизировали требования к новой системе и доработали изначальную спецификацию заказчика.

Taxi Apps

Система состоит из двух частей: веб-приложения для компаний-владельцев таксопарков, предлагающего пользователям разные возможности в зависимости от роли (владелец таксопарка, его администратор, водитель такси или администратор сайта); и мобильного приложения для таксистов под iOS и Android. Заказы на транспортировку поступают в AzzApp из системы заказчика через API и равномерно распределяются между таксопарками, а внутри таксопарков – между водителями по определенным географическим зонам.

Android app taxi

За этапом аналитики последовал этап разработки прототипа: команда Noveo реализовала первый рабочий вариант системы, которая на данный момент тестируется водителями. По итогам испытаний будет разработана коммерческая версия, выход которой намечен на начало весны.

Уже на стадии прототипирования мы столкнулись с рядом нетривиальных задач. Во-первых, система должна выдерживать высокие нагрузки, одновременно обрабатывая как поступающие в реальном времени данные от нескольких тысяч водителей, так и большое количество заказов. Грамотно спроектированная микросервисная архитектура на Google App Engine не только позволила обеспечить текущие высокие требования к производительности, но и гарантировала возможность масштабирования под еще большие нагрузки в будущем.

taxi_jets

Во-вторых, очень важной задачей было гарантировать практически мгновенную, буквально в течение несколько секунд, реакцию водителей на поступивший заказ. На момент разработки прототипа для отправки сообщений с сервера на мобильные приложения обычно использовались стандартные пуш-нотификации, которые в большинстве случаев работают нормально, но скорость и сам факт доставки стопроцентно все же не гарантируют. Для того, чтобы избежать потерянных и задержанных заказов, мы использовали online-базу данных Firebase — она и удобнее, и сообщения отправляет в режиме real-time, так что водители могут практически сразу подтвердить заказ.

Третий челлендж состоял в интеграции приложения с бортовым компьютером автомобиля. Для этой цели мы задействовали библиотеку OpenXC, с помощью которой мобильное приложение получает от автомобиля данные о скорости, GPS-координатах и др. и передает их на backend, что позволяет наиболее оптимально распределить заказы. В прототипе это было реализовано только для Android-версии, поскольку в iOS пока не было поддержки OpenXC, но теперь ее добавили, и в первом коммерческом релизе эта фича будет реализована как для Android, так и для iOS-приложения.

Кстати, для того, чтобы обсудить итоги работ по прототипированию и дальнейшее сотрудничество, Клод, один из топ-менеджеров Pragmatik, сам приезжал к нам в Сибирь! Мы были очень рады принять его у себя.

Проект уже показал себя масштабным и интересным, и его продолжение обещает быть не менее увлекательным. Спасибо Pragmatik за такой проект, ждем успеха первой коммерческой версии! =)

Waiting for taxi

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте в нашем блоге

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: