Документация Swagger: http://localhost:8080/swagger-ui/index.html
В начале работы необходимо отправить запрос POST http://localhost:8080/auth/begin для создания пользователей
- Предусмотрено создание 4 пользователей:
- "username": "username1", "password": "password1"
- "username": "username2", "password": "password2"
- "username": "username3", "password": "password3"
- "username": "username4", "password": "password4"
Cистема регистрации и обработки пользовательских заявок.
Пользователь посредством системы может подавать заявки оператору на рассмотрение.
Оператор может просматривать пользовательские заявки и принимать или отклонять их. Администратор управляет правами доступа.
-
Функции приложения:
- Создать заявку
- Отправить заявку оператору на рассмотрение
- Просмотреть список заявок с возможностью сортировки по дате создания в оба направления и пагинацией по 5 элементов, фильтрация по статусу
- Посмотреть заявку
- Принять заявку
- Отклонить заявку
- Просмотреть список пользователей
- Назначить права оператора
- Заявки могут дублироваться
-
В системе предусмотрены 3 роли:
- Пользователь
- Оператор
- Администратор
-
У пользователя системы может быть одновременно несколько ролей, например, «Оператор» и «Администратор».
-
У заявки пользователя предусмотрено 4 статуса:
- черновик
- отправлено
- принято
- отклонено
-
Пользователь может
- логиниться в систему
- создавать заявки
- создавать черновики
- просматривать созданные им заявки с возможностью сортировки по дате создания в оба направления и пагинацией по 5 элементов
- редактировать созданные им заявки в статусе «черновик»
- отправлять заявки на рассмотрение оператору
-
Пользователь НЕ может:
- редактировать отправленные на рассмотрение заявки
- видеть заявки других пользователей
- принимать заявки
- отклонять заявки
- назначать права
- смотреть список пользователей
-
Оператор может
- логиниться в систему
- смотреть все отправленные на рассмотрение заявки с возможностью сортировки по дате создания в оба направления и пагинацией по 5 элементов. Должна быть фильтрация по имени. Просматривать отправленные заявки только конкретного пользователя по его имени/части имени
- смотреть заявку по id
- принимать заявки
- отклонять заявки
-
Оператор НЕ может
- создавать заявки
- просматривать заявки в статусе отличном от «отправлено»
- редактировать заявки
- назначать права
-
Администратор может
- логиниться в систему
- смотреть список пользователей
- смотреть заявки в статусе отправлено, принято, отклонено. Пагинация 5 элементов, сортировка по дате. Фильтрация по имени.
- назначать пользователям права оператора
-
Администратор НЕ может
- создавать заявки
- редактировать заявки
- принимать заявки
- отклонять заявки
-
Технологический стек:
- Java 17
- Архитектура REST
- Spring Boot
- Spring Security
- JPA
- PostgreSQL
- Apache Tomcat
- Hibernate