Файл: Автоматизация продажи авиабилетов (Технико-экономическая характеристика предметной области и предприятия).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 58

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сущность “Билет” Таблица 3.2

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Идентификатор полёта

flight

Число

5

Внешний ключ

Идентификатор пассажира

passenger

Число

5

Внешний ключ

Дата покупки

buy_time

Дата

Дата использования

use_time

Дата

Сущность “Полёт” Таблица 3.3

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

10

Первичный ключ

Идентификатор самолёта

airplane

Число

5

Внешний ключ

Время прибытия

arrival_time

Дата

Время отбытия

departure_time

Дата

Идентификатор аэропорта прибытия

arrival_airport

Число

5

Внешний ключ

Идентификатор аэропорта отбытия

departure_airport

Число

5

Внешний ключ

Стоимость билета

cost

Число

5

Сущность “Самолёт” Таблица 3.4

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

1

Вместимость

capacity

Число

3


Сущность “Аэропорт” Таблица 3.5

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

45

Идентификатор города

city

Число

3

Внешний ключ

Сущность “Город” Таблица 3.6

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

20

Широта

lat

Вещественное число

Долгота

long

Вещественное число

Идентификатор страны

country

Число

5

Внешний ключ

Сущность “Страна” Таблица 3.7

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

40

Рисунок 8 Сценарии диалога

    1. Описание программных модулей

ИС состоит из 2 модулей: серверная часть и клиентская часть.

Серверная часть прямо отвечает за работу Веб-Сервера NodeJS:

  • Перенаправление на страницы.
  • Отправка запросов к БД.
  • Обработка запросов от пользователя и БД.

Клиентская часть отвечает за:

  • Изменение и отображение HTML.
  • Интерфейс для работы с БД.
  • Покупка билетов.
  • Сортировка и проверка получаемой информации от БД или пользователя.

Серверная часть написана с использованием языка JavaScript и библиотек:

  • Express – работа с HTTP запросами.
  • Mysql – Работа с запросами к БД.
  • Qrcode – Создание QR-кода содержащего номер билета.
  • Html-pdf – Создание PDF файла из HTML страницы.
  • Crypto – Шифрование и дешифрование текста.

Клиентская часть написана с использование языка TypeScript, фреймворка Angular 7.

Фреймворк Angular 7 - JavaScript-фреймворк с открытым исходным кодом. Предназначен для разработки одностраничных приложений. Его цель — расширение браузерных приложений на основе MVC-шаблона, а также упрощение тестирования и разработки.

Фреймворк работает с HTML, содержащим дополнительные пользовательские атрибуты, которые описываются директивами, и связывает ввод или вывод области страницы с моделью, представляющей собой обычные переменные JavaScript. Значения этих переменных задаются вручную или извлекаются из статических или динамических JSON-данных.

Angular 7 написан на язык TypeScript, который требуется для использования Angular.

TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript.

Для работы сайта требуется поддержка HTML5.

  1. Контрольный пример реализации и его описание

На странице “Покупка билетов” Веб-Приложения расположен список рейсов в виде таблицы.

Нажатие на заголовок колонки позволяет отсортировать всю таблицу по убыванию или возрастанию.

Нажатие на строку в таблице перенаправляет на страницу с детальной информацией по полёту, см. рисунок 9.2.

Рисунок 9.1 Пример страницы “Покупка билетов” Веб-Приложения

Адрес страницы “Покупка билетов” выглядит как: http://rosavia.com/flights.

Адрес страницы с информацией о рейсе выглядит как:

http://rosavia.com/flight/id, где: id – номер рейса.

Например: http://rosavia.com/flight/1.

Рисунок 9.2 Информация о рейсе

На странице с информацией о рейсе можно вернуться на страницу со списком рейсов или купить билет. При нажатии на кнопку “Купить билет” происходит перенаправление на адрес http://rosavia.com/buy/id, где: id – номер рейса. Например: http://rosavia.com/buy/1.


Рисунок 9.3 Покупка билета

На странице покупка билета необходимо ввести персональные данные:

  • Имя
  • Фамилия
  • Пол
  • Дата рождения

При вводе осуществляется проверка данных. Если какое-либо поле не введено: оно выделяется красным, см. рисунок 9.4.

При нажатии на кнопку “Оплатить” также происходит проверка введенных данных и, если какое-либо поле отсутствует – будет показано предупреждение.

Рисунок 9.4 Ошибка ввода

Если данные прошли проверку на сайте – они отправляются на Веб-Сервер, где обязательно проходят повторную проверку и, если есть ошибка – возвращается код и описание ошибки. В случае если ошибки не обнаружено – сервер делает запрос к БД и ищет на наличие уже купленного билета на данный рейс данным клиентом. Если билет на рейс уже куплен – возвращается ответ клиенту о том, что билет был куплен. Если билет не был куплен ранее – в БД заносится новая запись в таблицу “Билет”.

Рисунок 9.5 Повторная покупка билета

После успешных запросов к БД, сервер шифрует комбинацию персональных данных и информацию о билете и тем самым создаёт уникальный хэш купленного билета, по которому можно идентифицировать его.

Шифрование необходимо для усложнения перебора запросов к серверу в целях получения билетов клиентов. Обычный хэш билета выглядит так: “071669e491a354e8f518c2fe75c9948fd0a366867db6abf44e9397f443eddc38fe11097532545a7f8a4b8ee9acc028d76cd7a909304b3f1375b690e3d9caad21”

После получения хэша на сервере – он возвращает его клиенту и переводит на страницу http://rosavia.com/ticket/hash, где: hash – хэш билета. Например:

http://rosvia.com/ticket/071669e491a354e8f518c2fe75c9948fd0a366867db6abf44e9397f443eddc38fe11097532545a7f8a4b8ee9acc028d76cd7a909304b3f1375b690e3d9caad21

Уникальный номер билета такого вида очень и очень сложно подбирать, в качестве шифрования используется алгоритм AES-192, используемый США для шифрования данных. К нему добавляется пароль, который также требуется для шифрования и дешифрования хэша.

Рисунок 9.6 Пример билета

При переходе на страницу билета – выдаётся PDF файл, который можно напечатать и использовать как билет. Вёрстка билета была выполнена очень минималистично и в чёрно-белых цветах в целях доступности печати без траты красок.

Сверху на билете расположен QR-код в котором зашифрован номер билета. Это нужно для возможности мгновенно считать как клиенту с помощью камеры, так и на регистратуре в случае необходимости. Это намного упрощает ввод номера билета. Сам номер билета также присутствует сверху, в случае если у клиента нет средств для прочтения QR-кода или его искажения. Сам QR-код был сделан достаточно больших размеров что бы его можно было прочитать на большинстве камер.


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

Весь билет помещается на лист A4.

Заключение

В ходе курсовой работы была создана ИС в виде Веб-приложения автоматизирующая продажу авиабилетов. Для ИС была разработана база данных с использованием MySQL и был продемонстрирован пример реализации данной ИС.

Перед созданием ИС были проанализированы различные СУБД и возможные способы реализации системы. Было решено что MySQL является надёжной и проверенной СУБД, а Веб-приложение – современный и удобный способ автоматизировать бизнес-процессы.

Веб-приложение позволяет предоставить пользовательский интерфейс клиентам без необходимости устанавливать дополнительное программное обеспечение, для работы с ИС требуется любой современный браузер, без которого современный пользователь не обходится. Нет нужды покупать или устанавливать дорогое или ресурсоёмкое приложение как клиенту – так и компании. MySQL и веб-сайт занимают совсем небольшое пространство на диске и не требуют много ресурсов, но позволяют взаимодействовать с ИС большому количеству людей а также разделять полномочии между сотрудниками.

Для создания данной ИС не требовалось большого количества времени благодаря уже разработанной СУБД, веб-серверу NodeJS и фреймворку Angular.

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

Фреймворк Angular, как и веб-сервер, имеет огромную известность и популярность среди разработчиков, в основном благодаря тому – что авторами фреймворка являются работники компании Google.

Единственный возможный недостаток связан с использованием фреймворка Angular – он требует язык TypeScript, который является производным от JavaScript, но он не сложен в освоении и схож с JavaScript.

Также, для СУБД был изучен язык запросов, с помощью которого осуществляются все манипуляции с базой данных, метод создания ERD, проектирование и создание таблиц, их нормализация, создание внешних ключей, создание запросов.

Была изучена процедура настройки сервера и маршрутизации при создании веб-сервера.