Skip to content
This repository has been archived by the owner on Dec 9, 2022. It is now read-only.

al3xkras/Hotel_ServletFinalProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Готель

    1. Клієнт реєструється в системі і складає Заявку: --кількість місць, --клас апартаментів --час перебування.
    1. Так само клієнт може обрати номер зі списку доступних номерів і забронювати його.
    1. Незареєстрований користувач не може залишити заявку або забронювати номер.
    1. Для переліку номерів реалізувати сортування:
    • -- за ціною;
    • -- за кількістю місць;
    • -- за класом;
    • -- за статусом (вільний, заброньований, зайнятий, недоступний).
    1. Менеджер переглядає заявки, що надійшли, виділяє найбільш вподобаний з доступних номерів і відправляє запит клієнту на підтвердження бронювання.
    1. Запит відображається в особистому кабінеті користувача.
    1. Після того, як номер заброньовано, система виставляє клієнту Рахунок, який необхідно сплатити протягом двох днів.
    1. Якщо рахунок не сплачений, бронь автоматично знімається.

Загальні вимоги до реалізації

    1. На основі сутностей предметної області створити класи, які їм відповідають.
    1. Класи і методи повинні мати назви, що відображають їх функціональність, і повинні бути рознесені по пакетам.
    1. Оформлення коду має відповідати Java Code Convention.
    1. Інформацію щодо предметної області зберігати у реляційній базі даних (в якості СУБД рекомендується використовувати MySQL або PostgreSQL).
    1. Застосунок має підтримувати роботу з кирилицею (бути багатомовним), в тому числі при зберіганні інформації в базі даних:

      • a. повинна бути можливість перемикання мови інтерфейсу;
      • b. повинна бути підтримка введення, виведення і зберігання інформації (в базі даних), записаної на різних мовах;
      • c. в якості мов обрати мінімум дві: одна на основі кирилиці (українська або російська), інша на основі латиниці (англійська);
      • d. дати повинні бути реалізовані через DataTime бібліотеку (Java8).
    1. Реалізувати захист від повторної відправки даних на сервер при оновленні сторінки (реалізувати PRG).
    1. У застосунку повинні бути реалізовані аутентифікація і авторизація, розмежування прав доступу користувачів системи до компонентів програми. Шифрування паролів заохочується.
    1. Впровадити у проект журнал подій із використанням бібліотеки log4j.
    1. Код повинен містити коментарі документації (всі класи верхнього рівня, нетривіальні методи і конструктори).
    1. Застосунок має бути покритим модульними тестами (мінімальний відсоток покриття 40%). Написання інтеграційних тестів заохочуються. Використання Mockito заохочується.
    1. Реалізувати механізм пагінації сторінок з даними.
    1. Всі поля введення повинні бути із валідацією даних.
    1. Застосунок має коректно реагувати на помилки та виключні ситуації різного роду (кінцевий користувач не повинен бачити stack trace на стороні клієнта).
    1. Самостійне розширення постановки задачі по функціональності заохочується! (додавання капчі, формування звітів у різних форматах, тощо)
    1. Використання HTML, CSS, JS фреймворків для інтерфейсу користувача (Bootstrap, Materialize, ін.) заохочується!
    1. Розробка проектів за допомогою Git заохочується.

До сервлетного проекту:

    1. Для доступу до даних використовувати JDBC API із застосуванням готового або ж розробленого самостійно пулу з'єднань.
      • НЕ допускається використання ORM фреймворків
    1. Архітектура застосунка повинна відповідати шаблону MVC.
      • НЕ допускається використання MVC-фреймворків
      • НЕ допускається використання Project Lombok
    1. При реалізації бізнес-логіки необхідно використовувати шаблони проектування: Команда, Стратегія, Фабрика, Будівельник, Сінглтон, Фронт-контролер, Спостерігач, Адаптер та ін. Використання шаблонів повинно бути обґрунтованим
    1. Використовуючи сервлети і JSP, реалізувати функціональність, наведену в постановці завдання.
    1. Використовувати Apache Tomcat у якості контейнера сервлетів.
    1. На сторінках JSP застосовувати теги з бібліотеки JSTL та розроблені власні теги (мінімум: один тег custom tag library і один тег tag file).
    1. При розробці використовувати сесії, фільтри, слухачі.

До спрингового проекту:

    1. Застосунок повинен буду структурованим за архітектурою MVC та Spring Boot. Дозволено використання Project Lombok.
    1. Використання Spring Resource Bundle заохочується.
    1. Повинно бути застосована Spring Authorization.
    1. Для доступу до даних використовувати JPA (Spring Data та/або Hibernate).
    1. Обробка виключних ситуацій за допомогою Exception Handling with Spring for REST API заохочується.
    1. Використання ThymeLeaf заохочується.
    1. Використання додаткових фреймворків (Swager та інші) заохочується.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published