Проектирование и реализация программно-информационной системы поиска попутчиков
Автор: Киселев В.К., Фирсова С.А.
Журнал: Огарёв-online @ogarev-online
Статья в выпуске: 10 т.7, 2019 года.
Бесплатный доступ
В статье представлен анализ существующего программного обеспечения в области автоматизации поиска попутчиков. Приведены основные этапы моделирования, проектирования и реализации собственной программно-информационной системы, предназначенной для автоматизации взаимодействия между водителем и попутчиками.
Автоматизация поиска попутчиков, карпулинг, программно-информационная система, унифицированный язык моделирования
Короткий адрес: https://sciup.org/147249659
IDR: 147249659
Текст научной статьи Проектирование и реализация программно-информационной системы поиска попутчиков
Введение. Райдшеринг и карпулинг получили недавнее распространение в России, хотя эти термины пришли к нам с Запада – в семантике и по смыслу они означают «совместные поездки» (англ. ride – поездка, share – делиться, car – машина, pool – объединение) [1].
Идея этого движения состоит в том, чтобы для экономии топлива и денежных средств люди могли объединяться для дальних поездок, складываясь при этом на бензин. Благодаря всемирной паутине и GPS-технологии найти попутчиков сейчас несложно, однако не стоит забывать о мерах предосторожности и нюансах данного сервиса.
Совершение совместных поездок происходит по следующей схеме:
– водитель на специализированных сервисах заполняет анкету и выкладывает объявление о своей поездке;
– пассажиры находят эту поездку, связываются с водителем и обсуждают детали;
– попутчики вместе едут по определенному маршруту, при этом водитель экономит на топливе, пассажиры получают больший комфорт, чем в автобусе или поезде.
Если в Европе карпулинг широко распространен и поддерживается как современный и перспективный способ передвижения, то в России сервис только начинает внедряться. Конечно, есть ряд особенностей и нюансов, связанных именно с российским райдшарингом:
– пользователи сервиса не всегда ответственно и серьезно относятся к заполнению анкеты на сайте;
– отсутствие пунктуальности: попутчики могут в последний момент передумать и отказаться от поездки, даже не предупредив об этом заранее остальных участников.
Анализ информационных систем поиска попутчиков. Согласно сервису «Google» на территории России действует всего три сервиса для поиска автомобильных попутчиков, что несоизмеримо мало по сравнению с количеством подобных сервисов в Европе и США. Также стоит отметить, что на территориях большинства Европейских стран действуют локальные сервисы для поиска автомобильных попутчиков, которые не предназначены для использования по всей стране и рассчитаны только на маленькие города. Среди причин низкой распространенности и малого количества ресурсов для поиска попутчиков в России следует указать банальное незнание об их существовании; отсутствие знаний, необходимых для использования такого вида онлайн-сервисов, а также определенную степень недоверия к ним как со стороны водителя, так и со стороны пассажиров.
Проанализируем существующие решения в сфере сервисов по поиску попутчиков, представленных на территории Российской Федерации.
В первую очередь следует указать «BlaBlaCar», который является крупнейшим в мире международным онлайн-сервисом поиска автомобильных попутчиков, работающим в 21 стране мира [2]. Среди решений российских разработчиков первым стал «BeepCar», разработанный Mail.Ru Group в феврале 2017 [3]. Также существует сервис «Яндекс.Попутка», запущенный в 2018 году, но все еще не вышедший для всеобщего использования.
Проанализировав данные решения (см. таблицу 1), можно сделать вывод о том, что они либо мало функциональны и не соответствуют современным требованиям, либо являются очень сложными для использования простыми пользователями. Поэтому было принято решение создать программно-информационную систему «Карпул», которая будет сочетать в себе всю необходимую функциональность с адаптацией под среднестатистического водителя как будущего пользователя данным сервисом.
Таблица 1
Сравнение функциональности существующих решений
Функциональность |
BlaBlaCar |
BeepCar |
Яндекс.Попутка |
Карпул |
Веб-сайт |
+ |
+ |
- |
+ |
Приложение для телефона |
+ |
- |
+ |
- |
Свободная регистрация |
+ |
+ |
- |
+ |
Перевозка грузов |
- |
- |
- |
+ |
Авторизация при помощи социальных сетей |
+ |
- |
- |
+ |
Регистрация в качестве водителя или пассажира |
+ |
- |
- |
+ |
Регистрация при помощи социальных сетей |
+ |
- |
- |
+ |
Авторизация через социальные сети |
+ |
- |
- |
+ |
Добавление информации о себе |
+ |
+ |
+ |
+ |
Добавление фото |
+ |
+ |
+ |
+ |
Добавление аккаунтов социальных сетей |
+ |
+ |
- |
+ |
Выбора места бронирования в авто |
- |
- |
- |
+ |
Добавление авто с фото и основной информацией |
+ |
+ |
+ |
+ |
Добавление автобусов и газелей |
- |
- |
- |
+ |
Добавление промежуточных городов |
+ |
+ |
+ |
+ |
Сортировка по цене |
+ |
+ |
+ |
+ |
Сортировка по статусу авто |
+ |
+ |
- |
+ |
Сортировка по стажу водителя |
+ |
+ |
- |
+ |
Опция курящего салона |
+ |
+ |
- |
+ |
Опция перевозки животных |
- |
- |
- |
+ |
Опция разговорчивого водителя |
+ |
+ |
- |
+ |
Увеличения радиуса поиска доступных поездок |
+ |
+ |
+ |
+ |
Новости сервиса |
+ |
+ |
+ |
+ |
Блог сервиса |
+ |
+ |
- |
+ |
Наличие страницы помощи новым пользователем |
+ |
+ |
- |
+ |
Проектирование программной системы (ПС). На начальном этапе проектирования необходимо определить отношения между основными типами пользователей и функциями, которые предоставляет ПС. Для этого строится диаграмма вариантов использования, описывающая разрабатываемую систему на концептуальном уровне. Так, на рисунке 1 показано, что пользователями ПС являются водитель, попутчик, администратор, причем к основным вариантам использования ПС для водителя является добавление новых поездок, подтверждение и отмена бронирований, для попутчика – поиск поездок и их бронирование, а для администратора – это основные административные функции. Стоит отметить, что изначально каждый пользователь системы является равноправным участником. Иными словами, каждый пользователь, включая администратора может не только создавать поездки, но и искать и бронировать их, т.е. каждый пользователь системы может одновременно быть и попутчиком, и водителем.

Рис. 1. Диаграмма вариантов использования.
На следующем этапе разработки ПС необходимо перейти от концептуального уровня системы к программному описанию определенных сущностей посредством классов, интерфейсов, структур. Для этой цели служит диаграмма классов, которая определяет типы классов системы и различного рода статические связи, которые существуют между ними. На рисунке 2 показаны все существующие в данной автоматизированной системе связи, представленные в виде, соответствующему стандарту ISO/IEC 19505-1, 19505-2.
users int / varchar(255)
trip offer id id email phone number
и to_user_id from user created_at last_login_at is_banned datetime datetime bool

title - 5П 255)
varchar(255) text created_at datetime updated at datetime varchar(255) text created_at datetime updated at datetime hcense_plate_country_code vardiar(255) vehide_maker_id vehide_maker_modeljd vehide_body_type_id vehide_colors_id registration_year has_photo trip_offer_ic tnp_offer_stopover_ic status seat_number created_at booking type enumfSTANDART,!
gender enum fMALE’.'FEMALE')
trip_offer_stopovers int / id int int position price_stage trip_offer_id stopover varchar(255)
varchar(255)
varchar(255)
hcense_plate_number vehide_makers vehicle_body_types
P arbitration_cases_id arbitrabon_cases arbitration_cases_messages id int arbitrationjcasesjd int created_at views_count is luagage_accepted id name varchar(255)
vehide_makers_id int name varchar(255) t
b
=
is_email_confirmec is_phone_number_confirmed bool
to_user_id from_user_id trip_offer_id comment
user_profiles
first_name ast_name
varchar(255J
p p p p


schedule_flexibility iumCON_TIME’,'FIFTE...
name varchar(255)
color varchar(255)
jser_vehide_id status depar ture_place arrival_place using_freeway is_round_trip depar ture_date ”eturn_date price_stage price_stage_luggage seat_count is_comfort comment comment_return luggage
varchar(255)
varchar(255)
datetime datetime
enum CSMALL','MIDDLE'..
datetime

id user_id_from int / user_id_to int / title archar(255) t
p p
content status created_at
text int int
=
usersJd message created_at
int text datebme
d
show_phone_number birth_year general _biograph у has_photo talkjevel smokejevel petjevel musicjevel trip_offers_count arbitration_cases_count
price stage luggage nt
=
=
-
d d
d d
bool int text bool int int int int int int
b
=
=
=
=
-
=
Рис. 2. Диаграмма классов.
На завершающей стадии проектирования ПС выполняется разработка диаграммы компонентов. Диаграмма компонентов – статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонентов могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п. Разрабатываемая ПС имеет клиент-серверную архитектуру, поэтому было необходимо организовать межкомпонентное взаимодействие как сервера с клиентом, так и программного обеспечения сервера с базовыми средствами операционной системы с помощью различных протоколов и типов связи. Запрос пользователя обрабатывается сервером и в зависимости от его типа могут быть задействованы самые разные компоненты. Так компонент PHP Word выполняет формирование документов по заранее созданным шаблонам для отчетности, а база данных и файловое хранилище предоставляют необходимые данные, будь то изображения, документы или иная информация. Созданная структура взаимосвязи компонентов представлена на рисунке 3.

Рис. 3. Общая диаграмма компонентов.
Как было отмечено выше, ПС «Карупл» имеет клиент-серверную архитектуру, согласно которой пользователь взаимодействует с сервером системы, на котором в отдельных исполнительных средах хранятся данные и производятся основные вычисления, посредством каналов связи сети Интернет. Эти особенности отражены на рисунке 5 в диаграмме развертывания.

Рис. 4. Диаграмма развертывания.
Технологии реализации программной системы. Для реализации ПС использовались следующие технологии и языки программирования:
-
– для создания и оформления страниц сайта – HTML, JavaScript, CSS,
-
– для работы с сессиями пользователей, взаимодействия с базами данных – язык
программирования PHP-7 с применением веб-фреймворка Laravel;
-
– в качестве системы управления базами данных – MySQL;
-
– в качестве веб-сервера используется Apache с проксирующим Nginx 1.10.
Рассмотрим основные моменты работы с программно-информационной системой.
Изначально, когда пользователь попадает на сайт, его нельзя перегружать какой-либо информацией и обилием всевозможного функционала, поэтому в качестве главной страницы было сделано решение реализовать на ней посадочную страницу (так называемый landing page), показанную на рисунке 5.

Совместные поездки в 4 простых шага
Время в пути пролетит незаметно
Рис. 5. Главная страница.
На сайте реализована возможность регистрации и авторизации как при помощи email, так и при помощи социальной сети ВКонтакте.
После авторизации пользователь попадает на свою публичную страницу, которая так же видна всем остальным пользователям сервиса. У пользователя существует возможность редактирования своей персональной информации, в том числе смены пароля на специальных страницах сервиса.
Каждый пользователь может предложить поездку. На странице создания поездки пользователю предлагается ввести пункт выезда и пункт приезда, а также добавить промежуточные пункты. Автоматически рассчитывается стоимость поездки и время прибытия. При вводе пользователем данных выезда, приезда и промежуточных пунктов автоматически не только подсказываются города и места, но и строится карта с полной информацией о предстоящей поездке (рис. 6).

Рис. 6. Страница добавления поездки.
На странице поиска поездок пользователь может выбрать пункт выезда и приезда, а необходимые опции поиска поездки в случае необходимости (рис. 7).

Рис. 7. Страница поиска поездки.

Заключение. Сравнение функциональности существующих программных продуктов и ПС «Карпул» представлено выше в таблице 1. Очевидно, что созданная программная система не уступает по функциональности рассмотренным аналогам и, кроме того, сочетает в себе высокую производительность, простоту использования, удобный лаконичный интерфейс. Для повышения конкурентоспособности ПС «Карпул» необходимо провести качественную рекламную компанию, которая привлечет новую аудиторию.
Список литературы Проектирование и реализация программно-информационной системы поиска попутчиков
- Райдшеринг и карпулинг -что это такое? . -Режим доступа: https://www.rudorogi.ru/articles/advices/ridesharing-carpulling.html (дата обращения: 11.02.2018).
- В дорогу с попутчиками без хлопот . -Режим доступа: https://www.blablacar.ru/(дата обращения: 11.02.2018).
- Бипкар -поиск попутчиков, карпулинг, сервис райдшеринга Beepcar . -Режим доступа: https://www.beepcar.ru/(дата обращения: 11.02.2018).
- Яндекс.Попутка для водителей -сервис, который ищет попутчиков . -Режим доступа: https://yandex.ru/promo/poputka (дата обращения: 11.02.2018).
- ISO/IEC 19505-1:2012 -Information technology -Object Management Group Unified Modeling Language (OMG UML). -Part 1: Infrastructure . -Режим доступа: https://www.iso.org/standard/32624.html (дата обращения: 11.02.2018).
- ISO/IEC 19505-1:2012 -Information technology -Object Management Group Unified Modeling Language (OMG UML). -Part 2: Superstructure . -Режим доступа: https://www.iso.org/standard/52854.html (дата обращения: 11.02.2018).