Включает в себя позиции из нескольких меню, которые состоят из подменю, а те в свою очередь - из блюд. Для кэширования запросов используется Redis.
- Python 3.11.2
- FastAPI 0.101.0
- SQLAlchemy 2.0.20
- Pydantic 2.1.1
- PostgreSQL 15.1
- Docker
- Pytest 7.4.0
- Redis 4.+
Клонировать проект
git clone https://github.com/mikepavlos/ristorante_menu.git
Создать .env файл, либо изменить образец .env.example в директории проекта, улалив .example.
Запустить контейнеры командой
docker compose up -d --build
Документация к API localhost:8000/ либо localhost:8000/docs#
При разработке используется автоматическая проверка линтерами с применением pre-commit-hooks.
Для его запуска один раз после клонирования ввести команду pre-commit install.
В дальнейшем при каждом коммите будет происходить отработка pre-commit с проверкой и исправлениями линтерами.
Для этого ввести в командной строке
git add .
git commit -m "Текст коммита"
Если линтеры обнаружат или исправят ошибку - после рефакторинга повторить команды коммита.
Тесты эндпоинтов собираются в отдельный контейнер командой
docker compose -f docker-compose_test.yml up --build
Необходимо дождаться сборки контейнеров. При этом контейнер с тестами автоматически собирается, прогоняет тесты и останавливается. Результаты тестов выводятся в консоль вместе с логами.
Михаил Павлов https://github.com/mikepavlos