Skip to content

paramoshin/yandex_backend_task

Repository files navigation

yandex_backend_task

Code style: black Pre-commit


Вступительное задание в Школу бэкенд-разработки Яндекса - 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 хуки для проверки кода

Installing, running, testing, formatting, linting, etc.

All commands are set up in Makefile for easy usage.

  1. Install dependencies
make get-poetry
make install
  1. Run safety checks:
make safety
  1. Run tests:
  • Unit tests:
    make pytest
  • Load test:
    make loadtest
  1. Run pre-commit hooks (include black, isort, pyupgrade, flakehell and mypy) on all files:
make lint
  1. Create documentation:
make docs
  1. Build image:
make build
  1. Start services:
make up
  1. Push to container registry:
make push
  1. Deploy docker swarm stack:
make deploy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published