Task Tracker — учебный проект по программе «Java-разработчик» в Яндекс Практикум.
Сервис для управления задачами: позволяет создавать задачи, эпики и подзадачи, отслеживать их статусы, хранить историю просмотров и работать через HTTP-API.
-
Задачи (Task):
- создание, обновление и удаление задач,
- установка продолжительности и времени начала,
- автоматический расчёт времени окончания.
-
Эпики (Epic):
- объединение подзадач,
- автоматический расчёт статуса по статусам подзадач,
- вычисление общей продолжительности и периода выполнения.
-
Подзадачи (Subtask):
- связаны с конкретным эпиком,
- создание, обновление, удаление, просмотр.
-
История просмотров (History):
- сохранение последних просмотренных задач,
- отсутствие дублей в истории,
- быстрый доступ к последним действиям.
-
Приоритизация задач:
- сортировка по времени начала,
- контроль пересечений по времени выполнения.
-
Хранение состояния:
- файловое (CSV),
- через внешний KV-сервер (HTTP).
-
HTTP API:
- эндпоинты для работы с задачами, эпиками и подзадачами,
- получение истории
/tasks/history
, - список задач в приоритетном порядке
/tasks
.
Приложение построено на Java Core без использования Spring.
- Используется многослойная структура: менеджеры → хранилища → API.
- Доступ к данным реализован через:
- файловое хранилище (CSV),
- KV-сервер для сохранения состояния через HTTP.
- Поддерживается запуск собственного HTTP-сервера (
HttpTaskServer
) для REST-взаимодействия.
- Java 11
- Gson (работа с JSON)
- HTTP Server (встроенный, без Spring)
- CSV (сохранение состояния)
- JUnit 5 (модульные и интеграционные тесты)