Одна из основных первоначальных целей - наполнить базу маршрутами водителей. Маршрут - основной элемент сайта, созданный водителем, вся функциональность заточена на интерактив между пассажирами и водителями с их маршрутами.
Жизненный цикл маршруту до суток времени и каждый раз как пассажиры, так и водители должны использовать сайт для того, чтобы использовать возможность подъехать / подвести.
Задача функционала - предоставить простой и удобный интерфейс интерактива между водителями и пассажирами на сайте. Однако, основная цель - с помощью этого функционала сайта, водители должны подвозить пассажиров в реальной жизни, веб сервис имеет в этом допомагты и решать все проблемы связанные с этим
Функционал сайта:
Обобщение маршрутного цикла здесь: Последовательность действий (маршрутный цикл)
После перехода на сайт пользователь должен зарегистрироваться. Необходимо заполнить следующие поля: Имя, номер телефона, email, пароль. Возможна также регистрация через социальные сети (facebook) (под вопросом). Под вопросом обязательно валидация номера телефона через sms при регистрации и валидация email. Возможно вообще выбросить номер телефона как основное поле.
Флоу пассажира:
После первого входа на сайт пассажиру предлагается ввести адрес дома и работы, а также время, когда пассажир едет туда и обратно. После того, как пассажир ввел эти поля система может рекомендовать пассажиру маршруты водителей в автоматическом режиме.
Пассажир может также в ручном режиме выполнять поиск маршрутов водителей. Для ручного поиска необходимо вводить поля откуда и куда ехать, дополнительными полями могут быть выезде и разнообразные фильтры (пол, и тп), дополнительные фильтры в начале будут лишними, поскольку в базе будет мало водителей.
Как результат выдачи должно быть какой-то список маршрутов (например в блаблакар), в каждом маршрутов должна быть такая информация: фото водителя, имя откуда и куда едет (просто текстом адрес или улица), ссылку на просмотр маршрута на карте, время выезда, рейтинг водителя, который базируется на количестве положительных отзывов (типа ругательства), также различные бейджики водителя (что разрешено в авто).
При клике на результат поиска должна открыться подробная информация, возможно которая сразу и будет включать подробную информацию о водителе (как в блаблакар), конкретные отзывы попутчиков, комментарии водителя к поездке и другое.
Бронировать место необходимо для каждой поездки. Работает это следующим образом: водитель должен активировать свой маршрут каждый день (об этом подробнее в флоу водителя), после активации всем подписчикам (как подписаться на маршрут / водителя надо еще обсудить) водителя / маршрута будет направлено сообщение (email, sms и т.д.). В сообщении будет информация по указанному маршруту и предлагаться сообщить водителю о бронировании места в машине для этого маршрута. Для водителя доступны опции автоматически подтверждать все бронирования или вручную пидтведжуваты каждое бронирование.
Для начала никаких приоритетов бронирование не будет, так как для этого необходима большая база.
Кто первый забронировал место - того место и будет. Если мест в авто для данного маршрута уже не будет - просто будет сообщение об этом и рекомендация осуществить поиск маршрутов или подписаться на рекомендуемые. При бронировании пассажир должен указать детали бронирования, обязательно место встречи, то есть где будет ждать пассажир, эта точка должна быть выбрана на маршруте водителя и возможно время (время встречи водитель и пассажир должны согласовать). После подтверждения об этом бронирования будет сообщено пассажира. Если водитель хочет уточнить какие-то детали - он сможет например написать сообщение пассажиру через сайт.
Возможен дополнительный функционал:
функционал, который не обязателен сначала, но который несет социальную составляющую: водитель и пассажир имеют сначала подтвердить то, что они согласны стать попутчиками, например возможно водитель женщина согласна подвозить только женщин.
Поэтому водитель однократно подтвердить, что он согласен подвозить данного пассажира. Работает следующим образом: если пассажир выполняет поиск маршрутов водителей вручную, и если водитель маршрутки и пассажир еще не стали попутчиками - отображается кнопка стать попутчиками, если же водитель уже подтверждал данного пассажира - кнопка забронировать место. После того как пассажир кликает "Стать попутчиками" - водителю направляется запрос на Подтверждение, водитель может либо подтвердить или отменить. После подтверждения водителем заявки - пассажир получит нотификацию, что он уже может бронировать место на маршрутах этого водителя и все маршруты этого водителя будут доступны этом пассажиру непосредственно для бронирования мест.
пассажиру также постоянно предлагается детализировать свой профайл, чтобы водители при выборе или стать попутчиками, имеет больше информации о пассажире при выборе.
Флоу водителя:
После первого входа на сайт водителю нужно указать информацию по автомобилю, а именно модель, цвет авто и две цифры номера, то есть подтвердить что пользователь является водителем. После этого предлагается указать свои регулярные маршруты из дома на работу и с работы домой, а также время. Сам маршрут необходимо иметь возможность проложить на карте с возможностью подробно указывать все тонкости (переулки которыми водитель едет и тп).
После того, как водитель ввел эти поля система сможет рекомендовать пассажиру маршруты водителей в автоматическом режиме.
Каждый день водителю нужно будет активировать маршруты на завтра, например за 18 часов до выезда, с возможностью уточнить маршрут к его активации, например вносить изменения по количеству мест, или уточнению маршрута и времени. Можно предположить функцию автоматического подтверждения машрутов. После активации маршрута пассажиры получат уведомления для того, чтобы забронировать места в авто на данном маршруте. Обо всех бронирования водитель будет уведомлен, с детально указанной локацией встречи которую указал пассажир. Необходимо предусмотреть возможность отмены / деактивации маршрута с автоматическим оповещением всех пассажиров, если они есть. В деталях водитель должен указать причину отмены.
Водитель имеет выбор показывать или скрывать свои контакты, поскольку постоянные звонки могут быть надоедливыми. Можно разработать чат, в котором пассажиры и водители смогут коммуницировать друг с другом через сайт.
Общий для водителя и пассажира флоу / функционал:
Возможно не сразу, но необходимо будет добавить возможность комментировать поездки / пользователей, а также ставить лайки (?)
Должна быть возможность посмотреть и редактировать свой профайл (функционал надо обсудить и уточнить)
В пользователей должна быть возможность для оценки "адекватности" просматривать профайлы друг друга (если они не стали попутчиками, то возможно не вся информация должна отображаться).
Если брать блаблакар, просматривая чей профайл, есть интересная информация для оценки водителя (или пассажира) - "Подтверждение", например: "Номер телефона подтверждено"; "Email подтверждено"; "63 (Facebook друзей)"; "Правила приняты". Также есть "Активность пользователя": "Одна поездка"; "Последний визит: воскресенье 06. декабря"; "Пользователь с: 9 мая 2015". Надо однозначно подобный функционал имплементировать если не сразу, то в будущем точно.
Возможен дополнительный фукнционал:
В водителя и пассажира будет пункт меню "Попутчики", в котором они смогут видеть соответствии водителей или пассажиров с которыми они осуществляют совместные поездки
Просмотр диалогов, связанные с существующими поездками. Они автоматически архивируются после 20 дней с момента последнего отправленного сообщения. возможно будет необходимость раздел "сообщение" делить по категориям: Публичные вопросы; Личные сообщения; архивные сообщение
Последовательность действий (маршрутный цикл)
(1) В публикаций маршрута (однократно, периодичность, маршрут)
(2) П подписка на маршрут (однократно, периодичность)
(3) подтверждение маршрута (каждый раз, уточнения времени и маршрута: возможные отклонения и / или задержки / опережение)
(4) П заявка на поездку (каждый раз, время (с допуском + - минут), место ожидания)
(5) подтверждение заявки (каждый раз)
(6) П подтверждения конце поездки (каждый раз)
На каждом шагу возможность отмены с каскадной отменой зависимых шагов.
Диаграмму состояний для наглядности.
Начисления баллов за каждую поездку: Стандартный + (плюс) для В и П после успешного (6), также дополнительные +/- отдельно В и П по индивидуальным отзывами, как было описано выше, оценки. При проявлениях, стандартный - (минусы) индивидуально В или П.
Для Шаг 3 6 мая выставить временные пороги, и пропуск (непереход по состояниях) обрабатывать как "отличие" или как отдельную "негативную" действие.
Вокруг маршрутного цикла - рассылка уведомлений участникам о каждом шаге и переход состояний.
Рассмотреть коррекцию маршрутного цикла в случае когда пара П / В является попутчиками (что меняется?)
Со стороны бэкенд все выглядит как разработка двух компонентов [bird's eye view]: (1) route cycle FSM (2) messaging service. Последний надо продумать очень тщательно, как мы говорили с Мишей в последний раз. Должен быть гибкий (легко переключаться и настраиваться на альтернативные механизнмы типа СМС / мыло / звонок оператора / push notification / etc), простой (= надежный), масштабируемый на будущее и продуктивной (= подобрать соответствующую технологию).