Вступительное задание в Школу бэкенд-разработки Яндекса - https://disk.yandex.ru/i/dA9umaGbQdMNLw.
Реализовано для практики
- FastAPI для веб-сервиса и сваггер схемы из коробки с Pydantic для валидации данных
- Gunicorn в качестве WSGI сервера
- Postgres в качестве БД
- SQLAlchemy для ORM
- Alembic для миграций
- Databases для асинхронных запросов
- Pytest для юнит-тестов
- Locust для нагрузочного тестирования
- Nox для управления окружением тестов
- Poetry для управления зависимостями
- Docker, Docker Compose и Docker Swarm для деплоя
- Traefik для балансировки нагрузки и https-сертификатов
- pre-commit хуки для проверки кода
All commands are set up in Makefile for easy usage.
- Install dependencies
make get-poetry
make install
- Run safety checks:
make safety
- Run tests:
- Unit tests:
make pytest
- Load test:
make loadtest
- Run pre-commit hooks (include
black
,isort
,pyupgrade
,flakehell
andmypy
) on all files:
make lint
- Create documentation:
make docs
- Build image:
make build
- Start services:
make up
- Push to container registry:
make push
- Deploy docker swarm stack:
make deploy