An open API service indexing awesome lists of open source software.

https://github.com/borkli/usersupportservice

Тестовое задание
https://github.com/borkli/usersupportservice

gradle java-11 postgresql spring-security

Last synced: about 2 months ago
JSON representation

Тестовое задание

Awesome Lists containing this project

README

          

# UserSupportService
## Стек технологий
* Java 11
* Spring Boot
* Spring Security
* Hibernate
* PostgreSQL
* Gradle
## Локальный запуск проекта
1. Установите СУБД PostgreSQL и создайте БД *requests*
2. В файле конфигурации *application.yml* укажите свой #USERNAME и #PASSWORD
3. Доступ через http://localhost:8080/
## Описание
Спроектировать и разработать систему регистрации и обработки пользовательских заявок. Пользователь посредством системы может подавать заявки оператору на рассмотрение. Оператор может просматривать пользовательские заявки и принимать или отклонять их. Администратор управляет правами доступа.
* Спроектировать и разработать back-приложение
* Спроектировать и разработать Базу данных

Функции приложения
* Создать заявку (Заявка помимо прочих системных полей состоит из статуса и текстового обращения пользователя)
* Отправить заявку оператору на рассмотрение
* Просмотреть список заявок с возможностью сортировки по дате создания в оба направления (как от самой старой к самой новой, так и наоборот) и пагинацией по 5 элементов
* Посмотреть заявку
* Принять заявку
* Отклонить заявку
* Просмотреть список пользователей
* Назначить права оператора

В системе предусмотрены 3 роли:
* Пользователь
* Оператор
* Администратор

У пользователя системы может быть одновременно несколько ролей, например, «Оператор» и «Администратор».
У заявки пользователя предусмотрено 4 состояния:
* черновик
* отправлено
* принято
* отклонено

Пользователь может
* создавать заявки
* просматривать созданные им заявки с возможностью сортировки по дате создания в оба направления (как от самой старой к самой новой, так и наоборот) и пагинацией по 5 элементов
* редактировать созданные им заявки в статусе «черновик»
* отправлять заявки на рассмотрение оператору.
Пользователь НЕ может:
* редактировать отправленные на рассмотрение заявки
* видеть заявки других пользователей
* принимать заявки
* отклонять заявки
* назначать права
* смотреть список пользователей

Оператор может
* Просматривать все отправленные на рассмотрение заявки с возможностью сортировки по дате создания в оба направления (как от самой старой к самой новой, так и наоборот) и пагинацией по 5 элементов
* Просматривать отправленные заявки только конкретного пользователя по его имени/части имени (у пользователя, соотетственно, должно быть поле name) с возможностью сортировки по дате создания в оба направления (как от самой старой к самой новой, так и наоборот) и пагинацией по 5 элементов
* Принимать заявки
* Отклонять заявки
Оператор НЕ может
* создавать заявки
* просматривать заявки в статусе отличном от «отправлено»
* редактировать заявки
* назначать права

Администратор может
* смотреть список пользователей
* искать конкретного пользователя по его имени/части имени
* назначать пользователям права оператора
Администратор НЕ может
* создавать заявки
* просматривать заявки
* редактировать заявки
* принимать заявки
* отклонять заявки

Технические требования к приложению
* Java 1.8/Java 11
* Использовать архитектуру REST
* Использовать Spring Boot
* Использовать Spring Security
* Использовать Hibernate
* Использовать реляционную БД (MS SQL, MS SQL Lite, PostgreSQL, MariaBD)
* Создание пользователей и ролей не предусмотрено в этой системе. Подразумевается, что данные об учетных записях пользователей и роли уже есть в БД.
* В случае просмотра заявки оператором текст заявки выводить со знаком <-> после каждого символа. Пример: Пользователь отправил на рассмотрение заявку с текстом «Мне нужна помощь», а оператор на экране видит текст в формате «М-н-е- -н-у-ж-н-а- -п-о-м-о-щ-ь».