Skip to content

RemasLover13/TaskManagementSystem

Repository files navigation

TASK MANAGEMENT SYSTEM

Описание приложения

Task Management System — это современная система управления задачами, разработанная с использованием Java и Spring Boot. Приложение предоставляет RESTful API для создания, редактирования, удаления и просмотра задач, а также поддерживает комментарии, фильтрацию и пагинацию.

Требования:

  1. Сервис должен поддерживать аутентификацию и авторизацию пользователей по email и паролю.
  2. Доступ к API должен быть аутентифицирован с помощью JWT токена.
  3. Создать ролевую систему администратора и пользователей.
  4. Администратор может управлять всеми задачами: создавать новые, редактировать существующие, просматривать и удалять, менять статус и приоритет, назначать исполнителей задачи, оставлять комментарии.
  5. Пользователи могут управлять своими задачами, если указаны как исполнитель: менять статус, оставлять комментарии.
  6. API должно позволять получать задачи конкретного автора или исполнителя, а также все комментарии к ним. Необходимо обеспечить фильтрацию и пагинацию вывода.
  7. Сервис должен корректно обрабатывать ошибки и возвращать понятные сообщения, а также валидировать входящие данные.
  8. Сервис должен быть хорошо задокументирован. API должен быть описан с помощью Open API и Swagger. В сервисе должен быть настроен Swagger UI. Необходимо написать README с инструкциями для локального запуска проекта. Дев среду нужно поднимать с помощью docker compose.
  9. Напишите несколько базовых тестов для проверки основных функций вашей системы.
  10. Используйте для реализации системы язык Java 17+, Spring, Spring Boot. В качестве БД можно использовать PostgreSQL или MySQL. Для реализации аутентификации и авторизации нужно использовать Spring Security. Можно использовать дополнительные инструменты, если в этом есть необходимость (например кэш).

Инструкция для запуска

  1. Нужно склонировать репозиторий:
git clone https://github.com/RemasLover13/TaskManagementSystem.git
  1. Перейдите в директорию проекта:
cd TaskManagementSystem
  1. Соберите проект с помощью maven:
mvn clean package 
  1. Запустите проект с помощью Docker Compose:
docker-compose up -d --build
  1. API доступно по адресу:
http://localhost:8080

Для доступа к Swagger UI

http://localhost:8080/swagger-ui/index.html

Инструкция для того, чтобы установить пользователя - админом

  1. Зарегистрироваться img.png
  2. Подключиться к Postgresql
docker-compose exec db psql -U postgres -d task_management_db
  1. Узнать id, зарегистрированного пользователя
select * from users;
  1. Установить в таблицу users_roles ROLE_ADMIN
INSERT INTO users_roles(user_id, role_id)
VALUES (1,1);

Основные технологии

  1. Backend : Spring Boot + Spring Data JPA.
  2. База данных : PostgreSQL (основная) + H2 (для тестов).
  3. Кеширование : Redis через Spring Cache.
  4. Аутентификация : JWT (JSON Web Tokens) через библиотеку Auth0.
  5. Документация API : OpenAPI (Swagger).
  6. Тестирование : JUnit 5, Mockito, Spring Boot Test, Spring Security Test.

База данных

img_1.png

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published