Системный программист. разработать систему распределения заказов по гео локации исполнителей/Field Service Management такси (Дистанционная работа)
(проект не опубликован)

Бюджет не указан

Задание: Системный программист. разработать систему распределения заказов по гео локации исполнителей/Field Service Management такси (Дистанционная работа)

Здравствуйте, я ищу программное решение для автоматизации задач диспетчеризации и распределения заказов своего бизнеса. Мне нужно что то вроде Field Service Management software на основе географического положения исполнителей. Компания оказывает услуги частных водителей. Нам нужно связать водителя и пассажира согласно определенным алгоритмам. Нам нужно приложение для клиента на айфон или андроид либо форма размещения заказа на сайт. Также мы можем использовать функционал уже существующих бесплатных приложений, основной задачей клиентского приложения является вывести для нас информацию о заказе в удобном для нас формате и разместить ее в систему распределения заказов. Администраторский доступ для редактирования параметров и внесения информации в базы данных водителей и клиентов. Клиентское приложение (iPhone, Android) и/или форма веб-бронирования для клиента - функционал для нее - собрать информацию о будущем заказе от клиента и разместить ее в системе распределения заказов. В итоге в данной форме мы получаем адрес, время и дату подачи автомобиля и некоторые дополнительные параметры. Мы можем использовать любые решения, но предпочтение облачным.
 Клиент может сделать заказ 4 различными способами - 1. найти ближайшего водителя 2 он может установить конкретное время в течение ближайших 30 минут 3 он может сделать предварительный заказ. 4 гарантированный предварительный заказ (здесь необходимо указать, что минимальная сумма тарификации составит 3 часа по тарифам компании) Распределением заказов должно учитывать два параметра: по ГЕО и по приоритету. Для срочных заказов тип 1 - мы просто назначаем ближайшего водителя. Для всех остальных типов у нас есть параметр приоритета водителя, который я могу установить вручную для исполнителей. Клиент может выбрать два варианта тарификации - стандартную (мы берем поминутную оплату), в этом случае нам нужно только дату и время точки подачи авто. Он можете переключить параметр - на предложение фиксированной цены. В этом случае клиент должен указать маршрут полностью, добавив точки А, В С и тд. Мы должны рассчитать маршрут с учетом километров и предполагаемого времени и сразу предложить клиенту фиксированную цену. Можем просто продублировать маршрут в приложение конкурентов (Uber, Lyft, и показать клиенту аналогичную сумму). Если эту часть технически сложно реализовать для масштабируемой задачи, мы можем просто вывести информацию, что в момент посадки пассажир и водитель вручную запускают приложение конкурентов, смотрят стоимость поездки по нужному тарифу у конкурентов через клиентское приложение. Распределение заказов происходит по двум сценариям - срочный заказ с учетом гео локации исполнителя и предварительные гарантированные заказы (тип 4) в виде списка доступных будущих заказов. - заказ на ближайшее время - смотрим какой автомобиль предлагает ближайшее время подачи, назначаем ближайшую машину, вне зависимости от приоритета. Заказ на конкретное время внутри 30 минутного интервала - назначаем автомобиль который будет вовремя с наивысшим приоритетом водителя. Предварительный заказ - держим заказ в системе, размещаем по параметрам срочного заказ за 30 минут до подачи. Предварительный заказ с гарантированной подачей - размещается минимум за два часа до подачи, сразу предлагается всем водителям в радиусе допустим ~50 миль от точки подачи. Видимость заказа согласно приоритетам водителей. Допустим, водители с приоритетом от 90 до 100 видят заказ первыми, этой группе дается, допустим 10 секунд. Получаем от водителей отклики, распределяем водителю с наивысшим приоритетом. Если у водителей одинаковый приоритет, отдаем заказ первому из откликнувшихся водителей. ПОЛНЫЙ ТЕКСТ ЗАДАЧИ НЕ ВЛЕЗ В ПОЛЕ, Я РАЗМЕСТИЛ ЕГО В ВИДЕ СКРИНШОТА ЭКРАНА В ФАЙЛАХ ВЛОЖЕНИЯ!! Извините за неудобства.