Coder Social home page Coder Social logo

task-management-system-api's Introduction

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 [email protected] и паролем 123 или создать нового.

# Получение токена аутентификации и других данных пользователя
POST http://localhost:8081/api/auth/[email protected]@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}

task-management-system-api's People

Contributors

kofa-yoh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.