Skip to content

aandyxannn/task_manager_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager API

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)

Швидкий старт (локально, SQLite)

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 runserver

Запуск через Docker (з PostgreSQL)

cp .env.example .env
docker compose up --build

Документація API

  • 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 -v

Структура проєкту

task_manager_api/
├── task_manager_api/   # settings, urls, JWT/Swagger роутинг
├── tasks/               # модель Task, серіалізатор, viewset, permissions, тести (pytest)
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── .env.example

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors