- Собрать приложение с помощью BootJar
- Запустить через командную строку. Для запуска необходима PostgreSQL 11 версии. В качестве аргуметнов командной строки необходимо указать следующие аргументы командной строки (или переменные среды):
spring.datasource.url=${your_db_url}
- устанавливает url для базы данных, к которой приложение будет подключаться. Default:jdbc:postgresql://localhost:5432/hotelapp
spring.datasource.password=${password}
- Пароль для базы данных. Default:postgres
spring.datasource.username=${username}
- Логин для базы данных. Default:postgres
Необходимо реализовать единую систему управления отеля. Система должна позволять задавать параметры отеля, управлять бронированием и проживанием постояльцев, а также предоставлять финансовую статистику.
Система управления отелем представляет собой веб-приложение с ролевым доступам к компонентам. В системе должны быть предусмотрены следующие роли:
- Владелец отеля (O)
- Администратор отеля (A)
- Посетитель (V)
В системе должны быть предусмотрены следующие функции (значение в скобках- роли, которые могут выполнять функционал):
- (Реализовано только на бекенде) (O) Добавление, редактирование и удаление комнат отеля. Комната имеет следующие параметры:
- Номер комнаты
- Этаж
- Категория (эконом, обычный, люкс)
- Количество мест
- Наличие мини-бара
- (Реализовано только на бекенде) (O) Настройка стоимости проживания в номере в зависимости от его категории, количества мест и наличия мини-бара.
- (Реализовано только на бекенде) (O) Регистрация, редактирование и удаление других сотрудников отеля (владельцев и администраторов).
- (Реализовано только на бекенде) (O, A) Регистрация клиентов отеля
- (Реализовано на бекенде. Частично реализовано на фронтенде) (O, A, V) Бронирование номеров/редактирование/отмена бронирования для постояльцев в отеле на заданный период времени.
- (Реализовано только на бекенде) (O, A) Заселение и выселение постояльцев из отеля
- (Реализовано на бекенде. Частично реализовано на фронтенде) Регистрация в системе в качестве постояльца
- (Реализовано только на бекенде) (О, A) Получение информации о текущих проживающих и бронированиях, свободных комнатах.
- (Реализовано только на бекенде) (O, A) Получение истории проживания произвольного пользователя
- (Реализовано только на бекенде) (V) Получение своей истории проживания, а также бронирований
- (Реализовано только на бекенде) (О) Получение финансовой информации о доходах за произвольный период времени (считать, что клиент оплачивает проживание в момент заселения).
Пользователь системы имеет следующие параметры:
- Фамилия и имя
- Дата рождения
- Телефон и/или почтовый ящик
- Клиенты отеля имеют также 12-значный идентификатор клиента.
- Считать временем заезда 14:00, а временем выезда 12:00. Уведомлять (в разделе уведомлений) администрацию о ближайших выездах (в течение 24 часов).
- Реализовать уведомления на базе websocket-соединений.
- Уведомлять о том что пользователь не выехал в заданное время
- Добавить функционал раннего заезда (с 6:00) и позднего выезда (до 20:00) за половину суточной стоимости отеля.
- Добавить роль сотрудника клининговой службы со следующим функционалом:
- Получение уведомлений о комнатах, которые нужно убрать
- Отметка комнаты как убранной
Комната может быть помечена как требуемая к уборке в трёх случаях:
-
Через 48 часов после предыдущей уборки
-
По запросу владельца/администратора/постояльца
-
В момент регистрации отъезда постояльцам
-
(O, A) Получение информации об уборке номера
-
(A) Возможность настраивать цену на номер в зависимости от времени года/даты/дня недели.