
Кольцова А.А. Разработка прототипа системы бронирования велопрокатной организации
.pdf91
8 Требования к документированию
Вся документация должна быть подготовлена и передана как в печатном, так и в электронном виде (в защищенном от редактирования формате PDF).
9 Источники разработки
Настоящее Техническое Задание разработано на основе следующих документов и информационных материалов:
–Договор от 24.03.2024 на выполнение работ по созданию Автоматизированной системы управления заказами.
–ГОСТ 19.201-78. Техническое задание. требования к содержанию и оформлению;
–ГОСТ 34.601-90. Комплекс стандартов на автоматизированные системы.
автоматизированные системы. стадии создания;
–ГОСТ 34.201-89. Информационная технология. комплекс стандартов на автоматизированные системы. виды, комплексность и обозначение документов при создании автоматизированных систем;
–РД 50-34.698-90. Методические указания. информационная технология. комплекс стандартов на автоматизированные системы, автоматизированные системы. требования к содержанию документов
92
Приложение Г
Технический проект
1 Общие сведения
1.1Наименование системы
1.1.1 Полное наименование системы
Система бронирования велопрокатной организации
1.1.2 Краткое наименование системы
СБВО (Система бронирования велосипедов онлайн)
1.2Основания для проведения работ
Работа выполняется на основании договора на выполнение работ по созданию системы бронирования от 24.03.2024.
1.3Наименование организаций
1.3.1 Заказчик
ИП Никсарян Мариам Завеновна
1.3.2 Разработчик
Студентка группы 20-ПИ Кольцова Адриана Андреевна ФГБОУ ВО «Сочинский государственный университет»
1.4 Назначение и цели создания системы
Система бронирования велопрокатной организации предназначена для автоматизации процесса аренды велосипедов, что включает в себя бронирование, управление клиентами и инвентарем, а также обработку и формирование отчетов. Основная задача системы — обеспечить удобство и оперативность для клиентов при бронировании велосипедов, а также оптимизировать внутренние бизнес-процессы организации.
Цели создания системы включают повышение удовлетворенности клиентов за счет удобного интерфейса, автоматизацию бизнес-процессов для сокращения времени обработки заявок и оптимизацию управления инвентарем. Это также направлено на увеличение прибыли компании за счет улучшения качества обслуживания и предоставление аналитических данных для принятия управленческих решений.
Объекты автоматизации были подробно описаны в документе Технико-экономическое обоснование. Основные объекты автоматизации включают процессы бронирования велосипедов, управление инвентарем, учет клиентов и формирование отчетов.

93
2 Основные технические решения
2.1 Решения по структуре системы, подсистем, средствам и способам связи для
информационного обмена между компонентами системы
Система функционирует как распределенная трехзвенная клиент-сервер-СУБД программная архитектура. Система находится на виртуальном сервере Beget, в среде серверной операционной системы Ubuntu 22.04. Для создания информационной системы бронирования велопрокатной организации используется архитектура на базе LEMP (Linux, Nginx, MySQL, PHP). В системе выделяются несколько ключевых подсистем: модуль регистрации и авторизации пользователей, управление каталогом велосипедов, обработка бронирований, формирование отчетности и поддержка клиентских запросов.
Linux: используется за его стабильность, безопасность и гибкость. Ubuntu 22.04
предлагает актуальную и надежную платформу для серверов.
Nginx: высокопроизводительный веб-сервер, эффективный и с низким потреблением ресурсов. Отлично справляется с высокой нагрузкой и обеспечивает быструю обработку запросов.
MySQL: поддержка подготовленных выражений и транзакций обеспечивает высокую производительность и безопасность. Предоставляет объектно-ориентированный и процедурный стили программирования.
PHP: широко используемый серверный язык, легко интегрируется с MySQLi для создания динамических веб-приложений, обеспечивая быстрый отклик и гибкость в разработке. У Nginx нет встроенной поддержки обработки PHP, поэтому используется FastCGI
для передачи запросов к PHP-FPM (FastCGI Process Manager), что позволяет эффективно обрабатывать PHP-скрипты.
Схема размещения аппаратных средств представлена на рисунке 1.
Рисунок 1 - Схема размещения аппаратных средств
94
2.2 Решения по взаимосвязям АС со смежными системами, обеспечению ее
совместимости.
Система бронирования интегрируется с внешними системами через RESTful API,
используя стандартизированные форматы данных (JSON, XML), веб-сервисы и модульную архитектуру для обеспечения совместимости и расширяемости.
2.3 Решения по режимам функционирования, диагностированию работы системы
Система бронирования работает в круглосуточном режиме, обеспечивая постоянную доступность для пользователей. Для диагностики используются автоматические системы мониторинга, отслеживающие производительность, доступность и безопасность. Регулярное проведение тестов и проверок позволяет своевременно выявлять и устранять неисправности.
В случае обнаружения проблем система уведомляет администраторов для быстрого реагирования и устранения сбоев, обеспечивая стабильную и надежную работу системы.
2.4 Решения по персоналу и режимам его работы
Для обеспечения максимальной работоспособности и сохранения здоровья профессиональных пользователей на протяжении рабочей смены должны устанавливаться регламентированные перерывы: через 2 часа после начала рабочей смены и через 1,5 – 2,0 часа после обеденного перерыва продолжительностью 15 минут каждый или продолжительностью
10 минут через каждый час работы. Продолжительность непрерывной работы персонала с разрабатываемой системой и персональными компьютерами без регламентированного перерыва не должна превышать 2 часа.
Деятельность персонала по эксплуатации системы должна регулироваться должностными инструкциями.
Для эксплуатации ИС определены следующие роли:
-системный администратор;
-пользователь.
Рекомендуемая численность для эксплуатации ИС:
-системный администратор – 1 штатная единица;
-пользователь – число штатных единиц определяется структурой предприятия.
2.5 Состав функций, комплексов задач, реализуемых системой
Система бронирования велопрокатной организации реализует следующие функции и комплексы задач:
Регистрация и авторизация пользователей: Создание учетных записей, аутентификация и управление ролями пользователей.
Управление каталогом велосипедов: Добавление, редактирование и удаление информации о велосипедах, включая их характеристики и доступность.
95
Обработка бронирований: Создание, управление и обработка заказов, проверка доступности велосипедов, уведомления пользователей.
Формирование отчетов: Генерация отчетов по бронированиям, активности пользователей и состоянию инвентаря.
3 Мероприятия по подготовке объекта автоматизации к вводу системы в действие
3.1 Мероприятия по подготовке персонала
Заказчик должен обеспечить изучение инструкции по эксплуатации каждым сотрудником, использующим Систему. Системный администратор должен проводить консультации сотрудникам, у которых возникли сложности при использовании системы.
3.2 Мероприятия по изменению объекта автоматизации
Серверная часть системы функционирует на базе виртуального сервера. Для функционирования серверной части Исполнитель должен провести настройку операционной системы и установку серверных приложений.
4 Спецификации для таблиц БД.
Таблица 1 – Таблица agelimits
Столбец |
Тип данных |
Описание |
|
|
|
age_limit_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
age_limit |
int(11) |
Возрастное ограничение |
|
|
|
Описание: Таблица age_limits содержит данные о возрастных ограничениях для велосипедов.
Таблица 2 – Таблица availability
Столбец |
Тип данных |
Описание |
|
|
|
availability_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
status |
varchar(50) |
Статус доступности |
|
|
|
Описание: Таблица availability содержит данные о статусе доступности велосипедов.
Таблица 3 – Таблица bikes
Столбец |
Тип данных |
Описание |
|
|
|
bike_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
bike_model |
varchar(255) |
Модель велосипеда |
|
|
|
frame_size_id |
int(11) |
Внешний ключ на framesizes |
|
|
|
age_limit_id |
int(11) |
Внешний ключ на agelimits |
|
|
|
serial_number |
varchar(50) |
Серийный номер |
|
|
|
availability_id |
int(11) |
Внешний ключ на availability |
|
|
|
created_at |
datetime |
Дата создания |
|
|
|

|
|
96 |
|
|
|
updated_at |
datetime |
Дата обновления |
|
|
|
photo |
longblob |
Фотография |
|
|
|
category_id |
int(11) |
Внешний ключ на categories |
|
|
|
Описание: Таблица bikes содержит данные о велосипедах, включая модель, размер
рамы, возрастные ограничения и статус доступности.
Таблица 4 – Таблица bookingdetails
Столбец |
Тип данных |
Описание |
|
|||
|
|
|
|
|
|
|
booking_detail_id |
int(11) |
Первичный ключ, автоинкремент |
|
|||
|
|
|
|
|
|
|
booking_id |
int(11) |
Внешний ключ на bookings |
|
|||
|
|
|
|
|
|
|
bike_id |
int(11) |
Внешний ключ на bikes |
|
|||
|
|
|
|
|
|
|
Описание: Таблица bookingdetails содержит детали бронирования, связывая |
||||||
бронирования с велосипедами. |
|
|
|
|||
Таблица 5 – Таблица bookings |
|
|
|
|||
|
|
|
|
|
|
|
Столбец |
|
Тип данных |
|
Описание |
|
|
|
|
|
|
|
|
|
booking_id |
|
int(11) |
|
Первичный ключ, автоинкремент |
|
|
|
|
|
|
|
|
|
user_id |
|
int(11) |
|
Внешний ключ на users |
|
|
|
|
|
|
|
|
|
start_time |
|
datetime |
|
Время начала бронирования |
|
|
|
|
|
|
|
|
|
end_time |
|
datetime |
|
Время окончания бронирования |
|
|
|
|
|
|
|
|
|
status_id |
|
int(11) |
|
Внешний ключ на bookingstatus |
|
|
|
|
|
|
|
|
|
created_at |
|
datetime |
|
Дата создания |
|
|
|
|
|
|
|
|
|
updated_at |
|
datetime |
|
Дата обновления |
|
|
|
|
|
|
|
|
|
Описание: Таблица bookings содержит данные о бронированиях, включая
пользователей, время бронирования и статус.
Таблица 6 – Таблица bookingstatus
Столбец |
Тип данных |
Описание |
|
|
|
status_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
status_name |
varchar(50) |
Название статуса |
|
|
|
Описание: Таблица bookingstatus содержит данные о статусах бронирования.
Таблица 7 – Таблица categories
Столбец |
Тип данных |
Описание |
|
|
|
category_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
category_name |
varchar(255) |
Название категории |
|
|
|
Описание: Таблица categories содержит данные о категориях велосипедов.
|
|
97 |
Таблица 8 – Таблица feedback |
|
|
|
|
|
Столбец |
Тип данных |
Описание |
|
|
|
feedback_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
user_id |
int(11) |
Внешний ключ на users |
|
|
|
booking_id |
int(11) |
Внешний ключ на bookings |
|
|
|
rating |
int(1) |
Оценка |
|
|
|
comment |
text |
Комментарий |
|
|
|
created_at |
datetime |
Дата создания |
|
|
|
Описание: Таблица feedback содержит данные о обратной связи пользователей.
Таблица 9 – Таблица framesizes
Столбец |
Тип данных |
Описание |
|
|
|
frame_size_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
frame_size |
varchar(50) |
Размер рамы |
|
|
|
Описание: Таблица framesizes содержит данные о размерах рам велосипедов.
Таблица 10 – Таблица roles
Столбец |
Тип данных |
Описание |
|
|
|
role_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
role_name |
varchar(50) |
Название роли |
|
|
|
Описание: Таблица roles содержит данные о ролях пользователей.
Таблица 11 – Таблица users
Столбец |
Тип данных |
Описание |
|
|
|
user_id |
int(11) |
Первичный ключ, автоинкремент |
|
|
|
username |
varchar(255) |
Имя пользователя |
|
|
|
varchar(255) |
Электронная почта |
|
|
|
|
phone_number |
varchar(20) |
Номер телефона |
|
|
|
password_hash |
varchar(255) |
Хеш пароля |
|
|
|
role_id |
int(11) |
Внешний ключ на roles |
|
|
|
registration_date |
datetime |
Дата регистрации |
|
|
|
booking_count |
int(11) |
Количество бронирований |
|
|
|
created_at |
datetime |
Дата создания |
|
|
|
updated_at |
datetime |
Дата обновления |
|
|
|
account_status |
enum |
Статус аккаунта (active, blocked) |
|
|
|
Описание: Таблица users содержит данные о пользователях системы, включая их роль,
контактную информацию и статус аккаунта.
98
5 Спецификации для разработанных программных модулей.
Модуль 1: Регистрация и авторизация пользователей Описание:
Модуль регистрации и авторизации пользователей позволяет клиентам создавать учетные записи, входить в систему и управлять своими данными. Он обеспечивает безопасность данных и защиту от несанкционированного доступа.
Функциональные требования:
-Регистрация новых пользователей.
-Проверка корректности введенных данных.
-Авторизация существующих пользователей.
-Восстановление пароля через email.
-Защита данных пользователей (хранение паролей в зашифрованном виде).
-Входные данные:
-Имя пользователя.
-Адрес электронной почты.
-Пароль.
-Выходные данные:
-Уведомления об успешной регистрации/авторизации.
-Сообщения об ошибках при некорректных вводах.
-Сценарии использования:
-Пользователь заполняет форму регистрации, система проверяет данные и отправляет письмо с подтверждением.
-Пользователь вводит учетные данные для авторизации, система проверяет их и предоставляет доступ к личному кабинету.
Модуль 2: Обработка бронирований Описание:
Модуль обработки бронирований позволяет пользователям выбирать и бронировать велосипеды через систему, а также управлять своими бронированиями.
Функциональные требования:
-Просмотр доступных велосипедов.
-Выбор велосипеда и указание даты и времени бронирования.
-Проверка доступности велосипеда на выбранное время.
-Подтверждение бронирования и отправка уведомления пользователю.
Входные данные:
99
-Дата и время начала и окончания бронирования.
-Идентификатор выбранного велосипеда.
-Выходные данные:
-Уведомления об успешном бронировании.
-Сообщения об ошибках при некорректных вводах или отсутствии доступных
велосипедов.
Сценарии использования:
Пользователь выбирает велосипед и заполняет данные для бронирования, система проверяет доступность и подтверждает бронь.
Модуль 3: Управление пользователями Описание:
Модуль управления пользователями предназначен для администраторов системы,
позволяя им редактировать данные пользователей, просматривать их бронирования и управлять статусом учетных записей.
Функциональные требования:
-Просмотр списка пользователей.
-Редактирование данных пользователей.
-Удаление учетных записей.
-Просмотр и управление бронированиями пользователей.
Входные данные:
-Данные пользователя для редактирования (имя, email и др.).
-Идентификаторы бронирований для управления.
Выходные данные:
-Уведомления об успешном обновлении данных.
-Сообщения об ошибках при некорректных вводах.
Сценарии использования:
Администратор выбирает пользователя из списка, редактирует его данные и сохраняет изменения.
Модуль 4: Управление каталогом Описание:
Модуль управления каталогом позволяет администраторам добавлять, редактировать и удалять записи о велосипедах, а также обновлять их статус и характеристики.
Функциональные требования:
-Добавление новых велосипедов в каталог.
100
-Редактирование существующих записей.
-Удаление велосипедов из каталога.
-Обновление статуса доступности велосипедов.
Входные данные:
Информация о велосипеде (модель, размер рамы, возрастное ограничение, серийный номер, категория, фото и др.).
Выходные данные:
-Уведомления об успешном добавлении/обновлении/удалении велосипеда.
-Сообщения об ошибках при некорректных вводах.
Сценарии использования:
-Администратор вводит данные нового велосипеда и добавляет его в каталог.
-Администратор выбирает существующий велосипед и редактирует его данные.
Модуль 5: Формирование отчетов
Описание:
Модуль формирования отчетов предоставляет администраторам возможность
генерировать отчеты о бронированиях, пользователях и других аспектах работы системы.
Функциональные требования:
-Генерация отчетов на основе заданных критериев (период, статус бронирования,
пользователь и др.).
-Экспорт отчетов в формате Excel.
-Просмотр отчетов в табличном виде.
Входные данные:
Критерии для формирования отчета (период, статус бронирования, пользователь и др.).
Выходные данные:
-Табличные отчеты с информацией о бронированиях.
-Файлы отчетов в формате Excel.
Сценарии использования:
-Администратор задает критерии отчета, система формирует и отображает отчет,
атакже предоставляет возможность его экспорта.
-Эти спецификации обеспечивают понимание функционала каждого модуля,
входных и выходных данных, а также сценариев использования, что помогает в дальнейшем
проектировании и разработке системы бронирования велопрокатной организации.