Сердюк Оксана Олегівна

Харківський національний університет радіоелектроніки, Україна

Проектування програмного комплексу для розробки індивідуальних туристичних маршрутів

 

Багато людей дотримуються думки, що матеріальні речі не коштують нічого в порівнянні з будь якими враженнями і спогади. Заради неперевершених відчуттів люди ладні на все і починають захоплюватися найрізноманітнішими речами. Усе більшої популярності набирає таке хобі як подорожування.

Враховуючи скільки всього треба зробити, аби все ж таки поїхати подорожувати, це дуже складний процес. Обов’язковими справами перед від’їздом є скласти список необхідних речей, зібрати їх, придбати квитки, приготувати їжу в дорогу, перегортати величезну кількість сайтів у пошуках цікавинок у містах подорожі. Проте на це витрачається чимало часу.

Існує чимало сервісів, які тим чи іншим шляхом допомагають впоратися з турботами перед подорожами, але кожен з них націлений на якусь одну проблему, чи то речі, які необхідно взяти з собою, складання списку з ними, чи то просто інформаційні сайти зі збірками різноманітної інформації про визначні місця, які можна відвідати.

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

Метою даної роботи є створення програмного продукту, що дозволив би автоматизувати процес створення маршрутів для подорожей у районі міста. Користувач має ввести базові вимоги до міста, в яке він планує подорожувати, кількості людей. Також має бути можливість обрати на кого має бути орієнтований маршрут, чи то на дітей, чи то на дорослих.

Зобразимо на діаграмі послідовності (рис. 1) головний процес даної системи – створення маршруту.

Рисунок 1 – Діаграма послідовності

 

Розглянемо цю діаграму по крокам. Авторизація має бути розроблена за допомогою протоколу oAuth 2.0. Це протокол авторизації, який дозволяє видати сервісу або додатку доступ до ресурсів користувача зареєстрованого на іншому ресурсі. Протокол позбавляє необхідності довіряти додатку логін і пароль, а також дозволяє видавати обмежену кількість прав доступу.

Користувач відправляє запит на веб-сервер для авторизації з логіном і паролем у тілі запиту. Веб сервер відправляє запит до бази даних для пошуку користувача з такими даними. Якщо користувач такий знаходиться, веб-сервер відправляє у відповідь набір символів (access token), який служить для подальшої авторизації користувача. Для подальшої авторизації користувач має додавати отриманий токен у заголовок кожного запиту.

Наступний крок – створення маршруту. У тілі запиту користувач має вказати необхідні параметри для бажаного маршруту, серед яких є такі: місто, у яке здійснюється подорож, дата та час прибуття, дата та час від’їзду, місце, навколо якого варто будувати маршрут (наприклад, готель), максимальна відстань, на яку можна віддалятися від головної точки (готелю), максимальна кількість визначних місць, які можна включати в один день подорожі, типи розваг, місць, які можуть бути цікавими для користувача, бажана орієнтованість маршруту (на дітей, молодь, дорослих).

Далі веб-сервер відправляє запит до стороннього сервісу, щоб отримати інформацію про місця, що знаходяться у місті, яке вказав користувач. Використовуючи цю інформацію, веь-сервер створює маршрут по днях, зберігає його у власну базу даних і повертає його користувачеві.

Користувач може видалити місце з готового маршуту, яке його не влаштовує. Для цього він відправляє запит на веб-сервер, який у свою чергу змінює дані про маршрут у базі даних, видаляє потрібне місце, зберігає і повертає змінений марштур користувачеві.

Користувач може знайти необхідне місце, щоб у подальшому додати його до маршруту. Для цього користувач має відправити запит на веб-сервер з рядком згідно якого необхідно шукати місце. Це може бути або адреса місця, або його назва. Веб-сервер згідно цих даних робить запит до зовнішнього провайдеру даних, отримує необхідну інформацію, обробляє її та відправляє користувачеві. Користувач має змогу додати знайдене місце до згенерованого індивідуального маршруту до певного дня на певний час.

Для цього користувач має відправити запит на веб-сервер вказавши у тілі запиту необхідні параметри: ідентифікатор маршруту, який він хоче відредагувати, бажаний день маршруту для подорожі, бажаний час та тривалість візиту цього місця, та ідентифікатор бажаного місця, яке він хоче додати. Цей ідентифікатор користувач може отримати у відповідь на запит до веб-серверу для пошуку місця. Отримавши цей запит, веб-сервер дістає з бази даних маршрут за отриманим ідентифікатором, зберігає для нього нове місце та відправляє користувачеві оновлений маршрут у відповідь.

Користувач має змогу дізнатися більш детальні відомості про місце, яке йому запропоновано, аніж та інформація, що повертається разом з індивідуальним маршрутом. Для цього користувач повинен відправити запит на веб-сервер з ідентифікатором місця, про яке він хоче дізнатися більш детальну інформацію, як параметр запиту. Отримавши такий запит, веб-сервер має відправити запит до стороннього провайдеру даних, щоб отримати детальну інформацію про місце, обробити її та відправити назад користувачеві;

Коли користувач буде задоволений отриманим маршрутом, він має змогу його зберегти для подальшого використання. Для цього він має відправити запит з повною інформацією про даний маршрут у тілі запиту на веб-сервер. Веб-сервер, отримавши такий запит, має обробити вхідні дані та зберегти їх у власну базу даних. Якщо збереження даних пройшло успішно, веб-сервер має відправити відповідь про успішну результат операції, інакше має відправити відповідь з інформацією про помилку, що відбулася під час виконання операції.