Skip to content

AnatoliyYakimov/hotel_backend

Repository files navigation

Запуск:

  1. Собрать приложение с помощью BootJar
  2. Запустить через командную строку. Для запуска необходима 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)

В системе должны быть предусмотрены следующие функции (значение в скобках- роли, которые могут выполнять функционал):

  1. (Реализовано только на бекенде) (O) Добавление, редактирование и удаление комнат отеля. Комната имеет следующие параметры:
  • Номер комнаты
  • Этаж
  • Категория (эконом, обычный, люкс)
  • Количество мест
  • Наличие мини-бара
  1. (Реализовано только на бекенде) (O) Настройка стоимости проживания в номере в зависимости от его категории, количества мест и наличия мини-бара.
  2. (Реализовано только на бекенде) (O) Регистрация, редактирование и удаление других сотрудников отеля (владельцев и администраторов).
  3. (Реализовано только на бекенде) (O, A) Регистрация клиентов отеля
  4. (Реализовано на бекенде. Частично реализовано на фронтенде) (O, A, V) Бронирование номеров/редактирование/отмена бронирования для постояльцев в отеле на заданный период времени.
  5. (Реализовано только на бекенде) (O, A) Заселение и выселение постояльцев из отеля
  6. (Реализовано на бекенде. Частично реализовано на фронтенде) Регистрация в системе в качестве постояльца
  7. (Реализовано только на бекенде) (О, A) Получение информации о текущих проживающих и бронированиях, свободных комнатах.
  8. (Реализовано только на бекенде) (O, A) Получение истории проживания произвольного пользователя
  9. (Реализовано только на бекенде) (V) Получение своей истории проживания, а также бронирований
  10. (Реализовано только на бекенде) (О) Получение финансовой информации о доходах за произвольный период времени (считать, что клиент оплачивает проживание в момент заселения).

Пользователь системы имеет следующие параметры:

  • Фамилия и имя
  • Дата рождения
  • Телефон и/или почтовый ящик
  • Клиенты отеля имеют также 12-значный идентификатор клиента.

Дополнительный функционал

  • Считать временем заезда 14:00, а временем выезда 12:00. Уведомлять (в разделе уведомлений) администрацию о ближайших выездах (в течение 24 часов).
  • Реализовать уведомления на базе websocket-соединений.
  • Уведомлять о том что пользователь не выехал в заданное время
  • Добавить функционал раннего заезда (с 6:00) и позднего выезда (до 20:00) за половину суточной стоимости отеля.
  • Добавить роль сотрудника клининговой службы со следующим функционалом:
    1. Получение уведомлений о комнатах, которые нужно убрать
    2. Отметка комнаты как убранной

Комната может быть помечена как требуемая к уборке в трёх случаях:

  • Через 48 часов после предыдущей уборки

  • По запросу владельца/администратора/постояльца

  • В момент регистрации отъезда постояльцам

  • (O, A) Получение информации об уборке номера

  • (A) Возможность настраивать цену на номер в зависимости от времени года/даты/дня недели.

About

RELEX Voronej IT Academy project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •