TopJava graduation project
Задача: Создайте систему голосования для решения, где пообедать.
- 2 типа пользователей: администратор и обычный пользователь
- Администратор может ввести ресторан, и это меню обеда дня (обычно 2-5 пунктов, только название блюда и цена)
- Меню меняется каждый день (администраторы делают обновления)
- Пользователи могут голосовать в каком ресторане они хотят пообедать в
- Для каждого пользователя учитывается только один голос
- Если пользователь проголосует снова в тот же день:
- Если это до 11:00, мы предполагаем, что он передумал.
- Если это после 11:00, тогда уже слишком поздно, голосование не может быть изменено
- Каждый ресторан предлагает новое меню каждый день.
Maven, H2 database, Spring Security, Spring MVC, Spring Data JPA, Hibernate, SLF4J, logback, JUnit, Java 8 Stream API, Bootstrap и jQuery.
- 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"