-
Notifications
You must be signed in to change notification settings - Fork 0
/
tz.txt
36 lines (32 loc) · 3.6 KB
/
tz.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Разработка Системы Управления Задачами
Описание задачи:
Вам необходимо разработать простую систему управления задачами (Task Management System) с использованием Java.
Система должна обеспечивать создание, редактирование, удаление и просмотр задач.
Каждая задача должна содержать заголовок, описание, статус (например, "в ожидании", "в процессе", "завершено")
и приоритет (например, "высокий", "средний", "низкий"), а также автора задачи и исполнителя.
Реализовать необходимо только API.
Требования:
Сервис должен поддерживать аутентификацию и авторизацию пользователей по email и паролю.
Доступ к API должен быть аутентифицирован с помощью JWT токена.
Пользователи могут управлять своими задачами: создавать новые, редактировать существующие, просматривать
и удалять, менять статус и назначать исполнителей задачи.
Пользователи могут просматривать задачи других пользователей, а исполнители задачи могут менять статус своих
задач.
К задачам можно оставлять комментарии.
API должно позволять получать задачи конкретного автора или исполнителя, а также все комментарии к ним.
Необходимо обеспечить фильтрацию и пагинацию вывода.
Сервис должен корректно обрабатывать ошибки и возвращать понятные сообщения, а также валидировать входящие
данные.
Сервис должен быть хорошо задокументирован. API должен быть описан с помощью Open API и Swagger.
В сервисе должен быть настроен Swagger UI. Необходимо написать README с инструкциями для локального запуска
проекта. Дев среду нужно поднимать с помощью docker compose.
Напишите несколько базовых тестов для проверки основных функций вашей системы.
Используйте для реализации системы язык Java 17+, Spring, Spring Boot. В качестве БД можно использовать
PostgreSQL или MySQL. Для реализации аутентификации и авторизации нужно использовать Spring Security.
Можно использовать дополнительные инструменты, если в этом есть необходимость (например кэш).
Оценка: Оцениваться будут следующие аспекты
Соответствие требованиям.
Качество и чистота кода.
Проектирование системы и использование ООП.
Наличие тестов и их покрытие.
Обработка ошибок.