Skip to content

Repository files navigation

Task Management System REST API

Данный проект демонстрирует работу системы управления задачами и реализует следующие функциональные возможности системы:

  • Создание пользователей и генерация токенов для аутентификации с помощью JWT
  • Доступ к методам API по JWT
  • Создание и просмотр задач пользователями
  • Изменение задачи, установку исполнителя задачи, удаление задачи автором задачи
  • Изменение статуса задачи исполнителем задачи
  • Добавление комментария к задаче
  • Документация OpenAPI, Swagger

Запуск проекта

Загрузите проект из репозитория

# Создать jar файл
./gradlew bootJar

# Подготовить сервисы
docker compose build

# Запустить сервисы
docker compose up

*При запуске приложения идет заполнение базы данных тестовыми данными.

Откройте http://localhost:8081/swagger-ui/index.html

Ряд эндпойнтов требует аутентификации пользователя. В Swagger UI добавлена кнопка Authorize для ввода сгенерированного токена в поле Bearer Token.

Для получения токена аутентификации вы можете использовать уже созданного пользователя с email nikita@gmail.com и паролем 123 или создать нового.

# Получение токена аутентификации и других данных пользователя
POST http://localhost:8081/api/auth/signin?email=nikita@gmail.com@gmail.com&password=123

В теле ответа скопируйте поле token и вставьте его в поле Bearer Token. Теперь можно выполнять методы, для которых необходима аутентификация.

*Эндпойнт для выхода удалит рефреш токен из базы данных, но оставит Bearer Token в заголовке запросов, поэтому вы все еще сможете выполнять запросы требующие аутентификации, пока действует токен аутентификации.

После завершения работы

# Остановить сервисы
Ctrl + C

# Остановить и удалить контейнеры
docker compose down

REST API

Работа с пользователями

Новый пользователь
POST /api/auth/register

Вход (генерация токенов)
POST /api/auth/signin

Обновить токены
POST /api/auth/refresh-token

Выход *(доступ только по токену)
POST /api/auth/logout

Менеджер задач *(доступ только по токену)

Новая задача
POST /api/management/task/new

Новый комментарий к задаче
POST /api/management/comment/new/{taskId}

Задачи, где автором является текущий пользователь
GET /api/management/tasks/author

Задачи, где автором является пользователь с указанным email
GET /api/management/tasks/author/{email}

Задачи, где исполнителем является текущий пользователь
GET /api/management/tasks/executor

Задачи, где исполнителем является пользователь с указанным email
GET /api/management/tasks/executor/{email}

Обновление задачи *(доступ только для автора)
PUT /api/management/task/update/{id}

Добавление/обновление исполнителя задачи *(доступ только для автора)
PUT /api/management/task/update/executor

Обновление статуса задачи *(доступ только для автора и исполнителя)
PUT /api/management/task/update/status

Удаление задачи *(доступ только для автора)
DELETE /api/management/task/delete/{id}

About

REST API for Task Management System with Spring, Open API and Docker

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages