Разработать API для трекера задач, который позволяет пользователям регистрироваться, добавлять задачи и получать аналитическую информацию о своей производительности.
- Модели данных:
- Task: задача.
- Поля: название, описание, приоритет(низкий, средний, высокий), срок выполнения.
- TaskRecord: запись о выполненной задаче.
- Поля: пользователь(ForeignKey на User) задача(ForeignKey на TaskItem), дата выполнения, затраченное время в минутах.
- Task: задача.
- API эндпоинты:
- CRUD для User:
- Регистрация: POST /api/user/register
- Авторизация: GET /api/user/login
- CRUD для Task:
- Создание: POST /api/task/
- Просмотр списка: GET /api/task/
- Просмотр одной задачи: GET /api/task/{id}/
- Обновление: PUT /api/task/{id}/
- Удаление: DELETE /api/task/{id}/
- CRUD для TaskRecord
- Создание: POST /api/task-record/
- Просмотр списка: GET /api/task-record/
- Просмотр одной записи: GET /api/task-record/{id}/
- Обновление: PUT /api/task-record/{id}/
- Удаление: DELETE /api/task-record/{id}/
- Аналалитика:
- Ежедневная сводка: GET /api/summary/daily/
- Возвращает информацию о выполненных задачах, затраченном времени и распределении по приоритетам за текущий день.
- Предусмотрены фильтр по любому дню
- Ежедневная сводка: GET /api/summary/daily/
- CRUD для User:
- Дополнительные требования:
- Использовать JWT аутентификацию
- Реализовать разрешения, чтобы пользователи могли управлять только своими записями о выполненных задачах.
- Будет плюсом:
- Документация API (Swagger).
- Наличие тестов. (https://github.com/me1ncun/taskmetrics-unit-tests)
- Dockerfile для запуска приложения в контейнере.
- Наличие комментариев в коде.