REST API на Django + Django REST Framework — персональний трекер задач з JWT-авторизацією. Кожен користувач бачить і керує лише своїми задачами.
Python • Django • DRF • djangorestframework-simplejwt • drf-spectacular • PostgreSQL (SQLite для локальної розробки) • pytest • Docker
- CRUD для задач (
/api/v1/tasks/) з пріоритетом, статусом і дедлайном - JWT-авторизація; кожен користувач бачить лише власні задачі (
get_querysetфільтрує заowner) - Обчислюване поле
is_overdue(прострочена задача) на рівні моделі - Фільтрація за статусом/пріоритетом, пошук за назвою/описом, сортування
- Swagger UI / Redoc документація
- 9 тестів на pytest (fixtures, parametrize, ізоляція даних між користувачами)
- Dockerfile + docker-compose (Django + PostgreSQL)
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python manage.py migrate
python manage.py createsuperuser # опційно, для /admin/
python manage.py runservercp .env.example .env
docker compose up --build- Swagger UI:
http://127.0.0.1:8000/api/docs/ - Redoc:
http://127.0.0.1:8000/api/redoc/
curl -X POST http://127.0.0.1:8000/api/v1/auth/token/ \
-H "Content-Type: application/json" \
-d '{"username": "demo", "password": "demoPass123!"}'
curl http://127.0.0.1:8000/api/v1/tasks/ \
-H "Authorization: Bearer <access_token>"| Метод | Шлях | Опис |
|---|---|---|
| GET | /api/v1/tasks/ |
Список власних задач (фільтри, пошук, пагінація) |
| POST | /api/v1/tasks/ |
Створити задачу |
| GET/PATCH/DELETE | /api/v1/tasks/{id}/ |
Деталі / оновлення / видалення (лише власник) |
Фільтри: ?status=todo, ?priority=high, ?search=<текст>, ?ordering=due_date.
pytest -vtask_manager_api/
├── task_manager_api/ # settings, urls, JWT/Swagger роутинг
├── tasks/ # модель Task, серіалізатор, viewset, permissions, тести (pytest)
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── .env.example