Научная статья на тему 'Проектирование и реализация программно-информационной системы поиска попутчиков'

Проектирование и реализация программно-информационной системы поиска попутчиков Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
255
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТИЗАЦИЯ ПОИСКА ПОПУТЧИКОВ / КАРПУЛИНГ / ПРОГРАММНО-ИНФОРМАЦИОННАЯ СИСТЕМА / УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ / DESIGNING / MODELING / UNIFIED MODELING LANGUAGE / SOFTWARE AND INFORMATION SYSTEM / AUTOMATION OF TRAVEL COMPANION SEARCH / CARPOOLING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Киселев Владислав Константинович, Фирсова Светлана Анатольевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Киселев Владислав Константинович, Фирсова Светлана Анатольевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DESIGNING AND IMPLEMENTING SOFTWARE AND INFORMATION SYSTEM FOR RIDESHARING

The article presents an overview of ridesharing software. The authors consider the main stages of modeling, designing and implementing their own software and information system designed to automate the interaction between the car driver and the travelling companion.

Текст научной работы на тему «Проектирование и реализация программно-информационной системы поиска попутчиков»

КИСЕЛЕВ В. К., ФИРСОВА С. А.

ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ПРОГРАММНО-ИНФОРМАЦИОННОЙ СИСТЕМЫ ПОИСКА ПОПУТЧИКОВ

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

Ключевые слова: проектирование, моделирование, унифицированный язык моделирования, программно-информационная система, автоматизация поиска попутчиков, карпулинг.

KISELEV V. K., FIRSOVA S. A.

DESIGNING AND IMPLEMENTING SOFTWARE AND INFORMATION SYSTEM FOR RIDESHARING

Abstract. The article presents an overview of ridesharing software. The authors consider the main stages of modeling, designing and implementing their own software and information system designed to automate the interaction between the car driver and the travelling companion.

Keywords: designing, modeling, unified modeling language, software and information system, automation of travel companion search, carpooling.

Введение. Райдшеринг и карпулинг получили недавнее распространение в России, хотя эти термины пришли к нам с Запада - в семантике и по смыслу они означают «совместные поездки» (англ. ride - поездка, share - делиться, car - машина, pool -объединение) [1].

Идея этого движения состоит в том, чтобы для экономии топлива и денежных средств люди могли объединяться для дальних поездок, складываясь при этом на бензин. Благодаря всемирной паутине и GPS-технологии найти попутчиков сейчас несложно, однако не стоит забывать о мерах предосторожности и нюансах данного сервиса.

Совершение совместных поездок происходит по следующей схеме:

- водитель на специализированных сервисах заполняет анкету и выкладывает объявление о своей поездке;

- пассажиры находят эту поездку, связываются с водителем и обсуждают детали;

- попутчики вместе едут по определенному маршруту, при этом водитель экономит на топливе, пассажиры получают больший комфорт, чем в автобусе или поезде.

Если в Европе карпулинг широко распространен и поддерживается как современный и перспективный способ передвижения, то в России сервис только начинает внедряться. Конечно, есть ряд особенностей и нюансов, связанных именно с российским райдшарингом:

- пользователи сервиса не всегда ответственно и серьезно относятся к заполнению анкеты на сайте;

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

Анализ информационных систем поиска попутчиков. Согласно сервису «Google» на территории России действует всего три сервиса для поиска автомобильных попутчиков, что несоизмеримо мало по сравнению с количеством подобных сервисов в Европе и США. Также стоит отметить, что на территориях большинства Европейских стран действуют локальные сервисы для поиска автомобильных попутчиков, которые не предназначены для использования по всей стране и рассчитаны только на маленькие города. Среди причин низкой распространенности и малого количества ресурсов для поиска попутчиков в России следует указать банальное незнание об их существовании; отсутствие знаний, необходимых для использования такого вида онлайн-сервисов, а также определенную степень недоверия к ним как со стороны водителя, так и со стороны пассажиров.

Проанализируем существующие решения в сфере сервисов по поиску попутчиков, представленных на территории Российской Федерации.

В первую очередь следует указать «BlaBlaCar», который является крупнейшим в мире международным онлайн-сервисом поиска автомобильных попутчиков, работающим в 21 стране мира [2]. Среди решений российских разработчиков первым стал «BeepCar», разработанный Mail.Ru Group в феврале 2017 [3]. Также существует сервис «Яндекс.Попутка», запущенный в 2018 году, но все еще не вышедший для всеобщего использования.

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

Таблица 1

Сравнение функциональности существующих решений

Функциональность Б1аБ1аСаг БеерСаг Яндекс.Попутка Карпул

Веб-сайт + + - +

Приложение для телефона + - + -

Свободная регистрация + + - +

Перевозка грузов - - - +

Авторизация при помощи + - - +

социальных сетей

Регистрация в качестве + - - +

водителя или пассажира

Регистрация при помощи + - - +

социальных сетей

Авторизация через социальные + - - +

сети

Добавление информации о себе + + + +

Добавление фото + + + +

Добавление аккаунтов + + - +

социальных сетей

Выбора места бронирования в - - - +

авто

Добавление авто с фото и + + + +

основной информацией

Добавление автобусов и - - - +

газелей

Добавление промежуточных + + + +

городов

Сортировка по цене + + + +

Сортировка по статусу авто + + - +

Сортировка по стажу водителя + + - +

Опция курящего салона + + - +

Опция перевозки животных - - - +

Опция разговорчивого + + - +

водителя

Увеличения радиуса поиска + + + +

доступных поездок

Новости сервиса + + + +

Блог сервиса + + - +

Наличие страницы помощи + + - +

новым пользователем

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

подтверждение и отмена бронирований, для попутчика - поиск поездок и их бронирование, а для администратора - это основные административные функции. Стоит отметить, что изначально каждый пользователь системы является равноправным участником. Иными словами, каждый пользователь, включая администратора может не только создавать поездки, но и искать и бронировать их, т.е. каждый пользователь системы может одновременно быть и попутчиком, и водителем.

Рис. 1. Диаграмма вариантов использования.

На следующем этапе разработки ПС необходимо перейти от концептуального уровня системы к программному описанию определенных сущностей посредством классов, интерфейсов, структур. Для этой цели служит диаграмма классов, которая определяет типы классов системы и различного рода статические связи, которые существуют между ними. На рисунке 2 показаны все существующие в данной автоматизированной системе связи, представленные в виде, соответствующему стандарту КО/ГЕС 19505-1, 19505-2.

users

ys» d int <?

email varchar(255) t

phone_number int

vk id int #

ok id int #

s email confirmed bool b

s_phone_number_confirmed bool b

created at date time d

ast login at date time d

s_banned bool b

user_vehides

id int #

P userjd int г

license_platE_number yarchar(255) t

license_plate_country_code varchar(255) t

P vehide_maker_id int г

P vehide_maker_model_id int г

P vehide_body_type_id int г

P vehide_colorsJd int г

registration_year int #

has_photo bool b

vehide_makers

d int /

name varchar(255) t

1

vehide_maker_models

'J> id ¡п! /

P vehide такегэ id ¡^ г

пате уагсЬаг(255) t

tojuserjd from_user

trip offer id j —1-—

trip_offer_bcokings

id int #

P user id int /

P trip_offerJd int /

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

P trip_offer_stopoverJd int /

status bool Ь

seat number int #

created at datetime d

booking_type enumifCTANDARTVLUGG... t

id П1

P to user id п| s

P from user id П| г

P trip_offerJd П| /

comment П| #

rating п! J

trip_offers

id rit f

р userjd rit

user_vehide_id rit #

status int #

departure_place varchar(255) t

arrival_place varchar(255) t

using_freeway bool Ь

is_round_trip bool b

departure_date datetime d

return_date date time d

price_stage rit #

price_stagejuggage rit #

seat_count rit #

is_eomtbrt bool b

comment text t

comment_return text t

luggage enumCSMALLÏMIDDLE'... t

schedule_flexibility enumCONjnMEVFIFTE... t

created_at datetime d

views_oount rit #

is_luggage_accepted bool b

Tip offer id'

vehide_colors

¡d

пате □olor

fit

vardiar(25 5) varchar(255)

F

vehide_body_types

id ¡п! /

пате уагсЬаг(255) t

traer id

user_profiles

id М g

p userjd г

fjrstjname t

last_name t

gender enumCMALEVFEMALE') t

show_phone_number bool b

birth_year int #

general_biography text t

has_photo bool b

talkjevel int #

smokejevel int #

petjevel int #

musicjevel int #

trip_offêrs_count int t

arbitration_œses_count int *

tri p_offer_stopo vers

id int

trip_offer_id stopover varchar(255) position int

price_stage int

price_stsge_luggage int

pages

id int

title varchar(255) content text

created_at da te time updated_at da te time

news

id int #

title varchar[255) t

content tact t

created at datetime d

updated_at datetime d

arbitration_cases

id int /

P user id from int S

P user id to int /

title ■-.■arrfiar[255) t

content text t

status int #

created_at int 5

arbitration cases id

--=-=<X

arbitration_cases_messages

id ht #

p arbitration cases id int г

p users id int г

message text t

created_at datetime d

messages

"У id int t

title varchar[255) t

content text t

Рис. 2. Диаграмма классов.

На завершающей стадии проектирования ПС выполняется разработка диаграммы компонентов. Диаграмма компонентов - статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонентов могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п. Разрабатываемая ПС имеет клиент-серверную архитектуру, поэтому было необходимо организовать межкомпонентное взаимодействие как сервера с клиентом, так и программного обеспечения сервера с базовыми средствами операционной системы с помощью различных протоколов и типов связи. Запрос пользователя обрабатывается сервером и в зависимости от его типа могут быть задействованы самые разные компоненты. Так компонент PHP Word выполняет формирование документов по заранее созданным шаблонам для отчетности, а база данных и файловое хранилище предоставляют необходимые данные, будь то изображения, документы или иная информация. Созданная структура взаимосвязи компонентов представлена на рисунке 3.

Рис. 3. Общая диаграмма компонентов.

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

Рис. 4. Диаграмма развертывания.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Технологии реализации программной системы. Для реализации ПС использовались следующие технологии и языки программирования:

- для создания и оформления страниц сайта - HTML, JavaScript, CSS, библиотеки jQuery, Twitter Bootstrap 4, jQuery-Color, Yandex.Maps.API;

- для работы с сессиями пользователей, взаимодействия с базами данных - язык программирования PHP-7 с применением веб-фреймворка Laravel;

- в качестве системы управления базами данных - MySQL;

- в качестве веб-сервера используется Apache с проксирующим Nginx 1.10.

Рассмотрим основные моменты работы с программно-информационной системой.

Изначально, когда пользователь попадает на сайт, его нельзя перегружать какой-либо информацией и обилием всевозможного функционала, поэтому в качестве главной страницы было сделано решение реализовать на ней посадочную страницу (так называемый landing page), показанную на рисунке 5.

Рис. 5. Главная страница.

На сайте реализована возможность регистрации и авторизации как при помощи email, так и при помощи социальной сети ВКонтакте.

После авторизации пользователь попадает на свою публичную страницу, которая так же видна всем остальным пользователям сервиса. У пользователя существует возможность редактирования своей персональной информации, в том числе смены пароля на специальных страницах сервиса.

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

Рис. 6. Страница добавления поездки.

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

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

Заключение. Сравнение функциональности существующих программных продуктов и ПС «Карпул» представлено выше в таблице 1. Очевидно, что созданная программная система не уступает по функциональности рассмотренным аналогам и, кроме того, сочетает в себе высокую производительность, простоту использования, удобный лаконичный интерфейс. Для повышения конкурентоспособности ПС «Карпул» необходимо провести качественную рекламную компанию, которая привлечет новую аудиторию.

ЛИТЕРАТУРА

1. Райдшеринг и карпулинг - что это такое? [Электронный ресурс]. - Режим доступа: https://www.rudorogi.ru/articles/advices/ridesharing-carpulling.html (дата обращения: 11.02.2018).

2. В дорогу с попутчиками без хлопот [Электронный ресурс]. - Режим доступа: https://www.blablacar.ru/ (дата обращения: 11.02.2018).

3. Бипкар - поиск попутчиков, карпулинг, сервис райдшеринга Beepcar [Электронный ресурс]. - Режим доступа: https://www.beepcar.ru/ (дата обращения: 11.02.201B).

4. Яндекс.Попутка для водителей - сервис, который ищет попутчиков [Электронный ресурс]. - Режим доступа: https://yandex.ru/promo/poputka (дата обращения: 11.02.201B).

5. 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.201B).

6. ISO/IEC 19505-1:2012 - Information technology - Object Management Group Unified Modeling Language (OMG UML). - Part 2: Superstructure [Электронный ресурс]. -Режим доступа: https://www.iso.org/standard/52B54.html (дата обращения: 11.02.201B).

i Надоели баннеры? Вы всегда можете отключить рекламу.