- Приложение представляет собой сервис по покупке билетов в кинотеатр. На главной странице отображается зал с рядами:
- Если место забронировано, то это отображается в таблице:
- На главной странице используется динамическое обновление контента с помощью AJAX.
- После того как пользователь выбрал место, можно перейти на страницу оплаты. Здесь указывается ФИО пользователя и его номер:
- Страницы реализованы на HTML и Bootstrap.
- Для корректной обработки ситуации, в которой несколько пользователей одновременно бронируют одно и то же место, осуществляется проверка как на стороне клиента (с помощью JS), так и на стороне сервера.
- Для работы с JSON используется библиотека GSON.
- Все запросы к серверу посылаются в виде AJAX-запросов.
- Реализована валидация вводимых пользователем данных с помощью JS:
- На сервере реализовано 2 слоя: слой контроллеров и слой по работе с БД. Слой контроллеров реализован на сервлетах. Слой по работе с БД - на JDBC.
- В качестве БД используется PostgreSQL.
- В качестве системы логирования используется slf4j.
Для сборки проекта необходимо:
- Установить JDK 14.
- Установить Maven.
- Установить сервер БД PostgreSQL, задать логин - postgres, пароль - password.
- Установить Tomcat.
- Скачать исходный код проекта.
- Перейти в корень проекта, где лежит файл
pom.xml
. - Собрать проект командой
mvn -DskipTests=true package
. При успешной сборке должна появиться папка target ccinema-2.war
. - Переименовать war-архив в
cinema.war
. - Создать в pg_Admin БД cinema.
- Открыть Query Tool для созданной БД и запустить SQL-скрипт
schema.sql
, находящийся в папкеdb
. - Скопировать
cinema.war
в папкуwebapps
Tomcat. - Скопировать файл
cinema_db.properties
в папкуbin
Tomcat. - Запустить сервер с помощью
startup.bat
из папкиbin
Tomcat.
Перейдем на главную страницу приложения. Выберем место и оплатим его:
Откроем страницу бронирования в другом браузере, имитируя другого посетителя, и купим другой билет:
В первом браузере место сразу становится занятым.