Skip to content

Alexei84-08/RestaurantEvaluationProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RestaurantEvaluationProject

TopJava graduation project

Разработка и реализация REST API с использованием Hibernate / Spring / Spring-MVC.

Задача: Создайте систему голосования для решения, где пообедать.

  • 2 типа пользователей: администратор и обычный пользователь
  • Администратор может ввести ресторан, и это меню обеда дня (обычно 2-5 пунктов, только название блюда и цена)
  • Меню меняется каждый день (администраторы делают обновления)
  • Пользователи могут голосовать в каком ресторане они хотят пообедать в
  • Для каждого пользователя учитывается только один голос
  • Если пользователь проголосует снова в тот же день:
    • Если это до 11:00, мы предполагаем, что он передумал.
    • Если это после 11:00, тогда уже слишком поздно, голосование не может быть изменено
  • Каждый ресторан предлагает новое меню каждый день.

Technologies

Maven, H2 database, Spring Security, Spring MVC, Spring Data JPA, Hibernate, SLF4J, logback, JUnit, Java 8 Stream API, Bootstrap и jQuery.

Описание API

  • RootController
    • GET / возвращает список ресторанов с меню на сегодня.
    • GET /estimate возвращает результаты голосования за обед в ресторанах на сегодня.
    • GET /login возвращает страницу входа.
    • GET /registration возвращает страницу регистрации пользователя.
    • POST /registration регистрирует нового пользователя с ролью user.
  • UserController
    • GET /user/votes возвращает историю голосования авторизованного пользователя. Никто, кроме этого пользователя, не может видеть эту историю.
    • POST /user/votes авторизованный пользователь добавляет свой голос за выбранный ресторан.
  • AdminController
    • GET /admin отображает кабинет администратора.
    • GET /admin/users возвращает всех зарегистрированных пользователей.
    • POST /admin/users позволяет авторизованному администратору зарегистрировать нового пользователя.
    • PUT /admin/users позволяет авторизованному администратору изменить данные у зарегистрированого пользователя.
    • DELETE /admin/users позволяет авторизованному администратору удалить пользователя.
    • GET /admin/user/{id} возвращает авторизованному администратору данные для редактирования данных пользователя.
    • GET /admin/restaurants возвращает все зарегистрированные рестораны.
    • POST /admin/restaurants позволяет авторизованному администратору зарегистрировать новый ресторан.
    • PUT /admin/restaurants позволяет авторизованному администратору изменить данные у зарегистрированого ресторана.
    • DELETE /admin/restaurants позволяет авторизованному администратору удалить ресторан.
    • GET /admin/restaurants/{restaurantId} возвращает авторизованному администратору данные для редактирования данных ресторана.
    • POST /admin/dishes позволяет авторизованному администратору добавить новое блюдо к выбранному ресторану.
    • DELETE /admin/dishes/{dishtId} позволяет авторизованному администратору удалить блюдо из меню выбранного ресторана.

Развернуть сервис локально:

  • Сборка проекта с использованием Maven:
    • Скачать прект
    • Распаковать прект в любую папку
    • Открыть папку с проектом в командной строке
    • В командной строке выполнить команду "mvn package"
    • В командной строке выполнить команду "java -jar target/dependency/webapp-runner.jar target/*.war"

Откройте в браузере адрес http://localhost:8080/

Login - "admin", password - "asd"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors