Приложение для бронирования авиабилетов. Пользователи могут регистрироваться, просматривать доступные маршруты, выбирать время, места и приобретать билеты. Администраторы имеют возможность добавлять и редактировать маршруты и билеты. Реализована система авторизации и ролей пользователей. Используется Java EE, сервер Tomcat 11.
- Регистрация и авторизация пользователей.
- Панель администратора для управления маршрутами и билетами.
- Просмотр доступных маршрутов.
- Поиск самых дешевых маршрутов, включая маршруты с пересадками.
- Выбор времени, места и покупка билета.
- Back-end: Java EE, Servlet API, JSP, JPA (Hibernate).
- Front-end: JSP с использованием HTML/CSS/JS (или React).
- База данных: PostgreSQL.
- Сервер: Tomcat 11.
- Безопасность: Авторизация и аутентификация (Java EE Security).
-
День 1-2: Сбор требований и проектирование
- Составить список страниц и функционала для каждой страницы.
- Определить роли пользователей: Пользователь и Администратор.
- Разработать ER-диаграмму базы данных:
- Таблицы:
Users,Flights,Tickets,Bookings.
- Таблицы:
- Спроектировать архитектуру бэкенда (слои: Controller, Service, DAO).
- Спроектировать архитектуру фронтенда.
-
День 3-4: Инициализация проекта
- Настроить сервер Tomcat 11.
- Создать базовый Maven-проект.
- Подключить зависимости (Servlet API, Hibernate, PostgreSQL).
-
День 5-7: Реализация базового функционала
- Регистрация пользователей.
- Авторизация с разграничением ролей (Пользователь и Администратор).
- Настройка базы данных и создание таблиц.
- Настроить базовые маршруты (например,
/register,/login,/admin).
-
День 8-10: Административная панель
- Реализовать интерфейс для администратора:
- Просмотр маршрутов.
- Добавление новых маршрутов.
- Изменение и удаление существующих маршрутов.
- Реализовать интерфейс для администратора:
-
День 11-13: Пользовательская панель
- Реализовать просмотр доступных маршрутов для пользователя.
- Создать форму выбора билета (место, дата, маршрут).
- Добавить возможность покупки билета.
-
День 14-16: Поиск маршрутов с использованием графа
- Спроектировать структуру графа для маршрутов.
- Реализовать алгоритм поиска самого дешевого маршрута, включая пересадки (например, Dijkstra).
-
День 17-18: Улучшение UX/UI
- Доработка интерфейса (JSP/React).
- Добавить клиентские валидации форм (например, валидация полей регистрации).
-
День 19-20: Тестирование
- Написать тесты для бэкенда:
- Юнит-тесты для DAO и Service.
- Интеграционные тесты с использованием тестовой базы.
- Ручное тестирование пользовательского интерфейса.
- Написать тесты для бэкенда:
-
День 21: Завершение и документирование
- Написать инструкцию для запуска проекта.
- Обновить
README.md. - Провести финальное тестирование.
- Users: Содержит данные о пользователях (id, имя, фамилия, email, пароль, роль).
- Flights: Содержит информацию о маршрутах (id, место отправления, место прибытия, цена, время отправления, время прибытия).
- Tickets: Содержит данные о билетах (id, flight_id, место, статус).
- Bookings: Содержит информацию о бронировании (id, user_id, ticket_id, статус).
- Главная страница: Список маршрутов, поиск рейсов.
- Регистрация/Вход: Авторизация и регистрация.
- Панель администратора: Управление маршрутами и билетами.
- Панель пользователя: Просмотр маршрутов, покупка билета.
- Страница маршрута: Детальная информация о рейсе и билетах.
- Подготовка и начальная реализация: День 1-7.
- Основной функционал: День 8-13.
- Дополнительный функционал и тестирование: День 14-21.