Онлайн сервис заказа такси. Часть 4. Разработка сайта.

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

1. Система заказа автомобиля должна быть удобной и в ней должен разобраться любой человек.
2. Заказ передается через API партнеру, а обратно, получаем от партнера статус выполнения заказов.
3. Сайт должен иметь защиту от ботов и вредителей, чтобы кто-то нехороший не заказал десятки автомобилей.
В проработке структуры, изучил сайты основных лидеров сферы. Больше всего понравилась структура Яндекс.Такси. В итоге, было решено спереть у них.
Изначально оно выглядело так:
vezettaxi_1

В итоге, после переработок, сайт стал выглядеть так

vezettaxi_2

При разработке модуля оформления заказа, сразу столкнулись с лицензионными ограничениями.
Дело в том, что лицензия, Google Maps и Yandex Maps запрещают использовать бесплатную лицензию для службы такси и необходимо покупать платную.
Google ответил сразу о стоимости: от $11.900 за лицензию Google Maps for Work (да, от 12 килобаксов в год).
Однако, с Яндексом как всегда, ситуация бредовая.
Изначально, я получаю вот такой ответ

ya_maps_1

После этого, я задаю уточняющий вопрос

ya_maps_2

И получаю внезапный ответ

ya_maps_3

И тут, я оказываюсь в весьма специфичной ситуации.
С одной стороны, есть немало сервисов, которые используют API Yandex Maps и делают это без лицензии. С другой, Яндекс отказывается продавать лицензию службе такси, при том, что для своей службы Яндекс использует сервис.
И налицо пример монополизации, когда крупнейшая в стране компания, находящаяся под защитой государства, искусственно ставит ограничение на пользование их сервисом.
Вот честное слово, как всегда, все сделано через «пятую точку». Для такси лицензию не продают, в то же время, все сайты используют ее незаконно. Нормально это?
В итоге было принято решение, использовать 2 карты, с возможностью выбора юзерами:
1. Яндекс карты.
2. Open Street Map.
При этом, юзер может выбрать сам, какая карта ему больше нравится. По итогу, это прикроет мою пятую точку, если вдруг Яндекс решит судиться: дело можно развернуть так, что я не заработал ни рубля с использования Яндекс.Карт.

При работе с API возникли тоже сложности: для геокодирования мы применяли Яндекс Карты, а партнер использует Open Street Map, в результате, при передаче некоторых адресов, система партнера не понимала адрес подачи и возвращала ошибку. Данную проблему удалось решить передачей кроме адреса GPS координат: широту и долготу.
Дальше, возникла проблема с предоставлением предварительной стоимости поездки. Ведь в Москве она зависит от нескольких параметров: стоимость подачи, время включенное в подачу, стоимость минуты после включенного времени, а так же километраж.
Далее была сложность с трансфером – то есть фиксированные поездки в/из аэропорты, а также между аэропортами. Ведь Москва делится на 9 округов и стоимость в каждый аэропорт зависит от округа Москвы. И тут пришлось работать с полигонами и в дело пошли алгоритмы Брезенхема и трассировки лучами.
Вообще, окончательная схема работы сайта появилась только в Октябре.
 
schema_site_1
schema_site_2
schema_site_3
 
И к вышеописанной структуре добавилась необходимость сделать API для мобильного приложения, чтобы пользователь мобильным приложением мог видеть в приложении предварительную стоимость поездки.

Пришлось еще немало подумать, как организовать сам сайт. В итоге было решено сделать поддоменную структуру:
vezettaxi.ru – основной сайт
moscow.vezettaxi.ru – сайт для Москвы
kaliningrad.vezettaxi.ru – сайт для Калининграда и т.д.
Но тут новая проблема – у партнера мы можем прописать только один урл обратных запросов, следовательно, все поддоменные сайты должны работать через один центральный. А ведь на всех поддоменных сайтах разные тарифы.
В общем, крайне надеюсь, что до конца года сайт будет сделан.


Social tagging: > > >

Отправить ответ

Оставьте первый комментарий!

Уведомление
avatar
wpDiscuz