Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timofeev-vadim-96/task-management-system
REST-API CRM-системы управления задачами внутри компании
https://github.com/timofeev-vadim-96/task-management-system
java junit liquibase mockito openapi postgresql spring swagger-ui
Last synced: 21 days ago
JSON representation
REST-API CRM-системы управления задачами внутри компании
- Host: GitHub
- URL: https://github.com/timofeev-vadim-96/task-management-system
- Owner: timofeev-vadim-96
- Created: 2025-01-18T00:04:43.000Z (25 days ago)
- Default Branch: main
- Last Pushed: 2025-01-21T11:45:16.000Z (21 days ago)
- Last Synced: 2025-01-21T12:30:41.172Z (21 days ago)
- Topics: java, junit, liquibase, mockito, openapi, postgresql, spring, swagger-ui
- Language: Java
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Система управления задачами (Task Management System)
---
`Локальный запуск / Quick start`
- из директории ./docker выполнить команду:
```bash
docker-compose up -d
````Documentation`
* [OpenAPI description](http://localhost:8080/api/v1/api-docs)
* [Swagger UI](http://localhost:8080/api/v1/swagger-ui)`Описание проекта`
- реализована ролевая система пользователей: ADMIN, USER
- аутентификация пользователей производится с помощью JWT-токена по email и паролю
- эндпоинты REST API защищены с помощью цепочки фильтров Spring Security
- пользователя с ролью ADMIN может зарегистрировать только существующий и авторизованный администратор
- Логика ограничения доступа пользователей с ролью USER к заданиям других пользователей и их комментариям
реализована кастомно, с использованием аспектно-ориентированного подхода (Spring AOP)
- API позволяет получать задачи конкретного автора или исполнителя, а также все комментарии к ним
- на эндпоинте получения перечня заданий обеспечена **пагинация** и **фильтрация**, с кешированием результатов
- все входные данные валидируются, ошибки корректно обрабатываются в соответствующие HHTP-статусы
- сервис описан и задокументирован с помощью Open API и Swagger
- dev-среда поднимается с помощью **docker-compose**`Логика функционала и доступа по ролям`
- Каждая **задача** содержит:
- id
- заголовок
- описание
- статус ("в ожидании", "в процессе", "завершено")
- приоритет ("высокий", "средний", "низкий")
- список комментариев
- автора задачи
- исполнителя задачи
- Каждый **комментарий** содерижт:
- id
- текст
- автора
- задачу
- **Администратор** может управлять всеми задачами:
- создавать новые,
- редактировать существующие,
- просматривать
- удалять
- менять статус и приоритет
- назначать исполнителей задачи
- оставлять комментарии
- **Пользователи** могут управлять своими задачами, если указаны как исполнитель:
- менять статус
- оставлять комментарии`Тестирование`
* все контроллеры, сервисы, конвертеры и кастомный репозиторий покрыты тестами
* тесты безопасности вынесены в отдельные классы
* над всеми эндпоинтами сервиса произведено ручное тестирование с помощью Postman> SECRET_KEY оставлен в application.yml осознанно, для демонстрации проекта и возможности локального запуска