Минимальный backend-сервис для управления списком задач (ToDo) с REST API, авторизацией и парсингом данных с сайта Astana Hub. Развертывание через Docker Compose.
- Python 3.12+
- Django 5+
- Django REST Framework
- PostgreSQL
- Docker + Docker Compose
- JWT
- Swagger (drf-yasg)
- Requests, BeautifulSoup (для парсинга)
git clone https://github.com/dimaboro-code/ToDoTestProject.git
cd ToDoTestProjectdocker compose up --buildСервер будет доступен по адресу: http://localhost:8000
При запуске проект создает суперюзера с данными из .env файла
Доступна по адресу:
http://localhost:8000/docs/
POST /auth/register/
Поля: email, username, password
POST /auth/login/
Поля: email, password
Ответ: JWT-токен
Все эндпоинты
/tasks/требуют авторизации. Авторизация возможно как по юзернейму, так и по емейлу
| Метод | URL | Описание |
|---|---|---|
POST |
/tasks/ |
Создание новой задачи |
GET |
/tasks/ |
Список задач (фильтрация по completed, title) |
GET |
/tasks/{id}/ |
Получение одной задачи |
PUT/PATCH |
/tasks/{id}/ |
Обновление задачи |
DELETE |
/tasks/{id}/ |
Удаление задачи |
Пример:
/tasks/?completed=true&title=meeting
GET /parser/parse/
Собирает первых 10 участников технопарка Astana Hub и сохраняет их в базу данных.
GET /parser/
Показывает список собранных участников Astana Hub.
Запуск тестов внутри контейнера:
docker compose exec web pytest- ✅ Пагинация списка задач
- ✅ Автообновление поля
updated_at - ✅ Минимальная админка для управления задачами
- ✅ Black + PEP8 форматирование
todo_api/
├── todo_api/ # Основное приложение
├── users/ # Авторизация и регистрация
├── parser/ # Парсинг Astana Hub
├── tasks/ # ToDo лист
├── manage.py
├── pyproject.toml
├── Dockerfile
├── docker-compose.yml
└── README.md
MIT License