- Описание
- Функционал
- Технологии
- Архитектура
- Интерфейс
- Документация JavaDoc
- Тесты
- Автор
- Критика и предложения
MVC - cервис представляет собой макет онлайн-кинотеатра для выбора мест и покупки билетов. Реализован на Servlet&JSP&AJAX
- Выбор мест
- Заполнение формы для бронирования(имя/email)
- Java14
- JDBC
- PostgreSQL
- Servlet&JSP&JSTL
- HTML, CSS, BOOTSTRAP, JS, AJAX, JQUERY
- Apache Tomcat Server
- Junit, Hamcrest, Mockito, Powermock
- Log4j, Slf4j
- HsqlDB, Mockito
Проект реализован по шаблону MVC и разделён на слои:
-
Хранилища(Model)
1.1 PsqlHallStore - PostgreSQL хранилище для состояния кинозала. Реализует интерфейс HallStore со следующим функционалом:
* Вернуть список всех мест кинозала (getPlaces()) * Вернуть коллекцию id заполненных мест (getFilledIds()) * Вернуть место по id (getById(int id)) * Занять места в кинозале (fillPlaces(List<Integer> placeIds))
1.2 PsqlUserStore - PostgreSQL хранилище для покупателей
-
JSP - View
2.1 index.jsp - главная страница приложения. Функционал: * Отображение кинозала. По Ajax запрашивается и приходит информация с HallServlet в формате JSON. Ранее выбранные места недоступны для выбора и отображаются красным цветом. Свободные места отображаются белым цветом и доступны для выбора. * Выбор мест и переход на страницу бронирования.
2.2 payment.jsp - страница бронирования. После заполнения данных клиента, места закрепляются за ним и на главной странице будут отображаться как занятые. -
Сервлеты - Controller
3.1 HallServlet -
* doGet метод служит для отправки данных о кинозале на index.jsp в ответ на AJAX GET - запрос. Формирует и передаёт данные в формате JSON. * doPost метод формирует и передаёт данные, а именно список выбранных мест, на payment.jsp
3.2 PayServlet
* doPost метод принимает данные покупателя с payment.jsp, вкупе со списком забронированных мест. Заносит соответствующую информацию в БД.
- Кинозал
- Выберем места и нажмём оплатить
- Перешли на страницу бронирования/оплаты
- Введём данные покупателя и нажмём "оплатить"
- Видим, что места забронированы.
TODO
- PsqlHallStoreTest - интеграционные HsqlDB тесты на PsqlHallStore
- HallServletTest - Mockito тесты на HallServlet
Гераськин Егор Владимирович
Java-разработчик
+79271506651
Все замечания и пожелания по этому проекту просьба направлять мне на электронный адрес: yegeraskin13@gmail.com