Проект выполнен в рамках интенсива Python от компании Y_lab. По результатам выполнения и техсобеса принят на стажировку в компанию Y_lab
MIT License
Проект выполнен в рамках интенсива от Y_Lab. Проходил в июле-августе 2023г. Состоял из 4-х заданий.
Написать проект на FastAPI с использованием PostgreSQL в качестве БД. В проекте следует реализовать REST API по работе с меню ресторана, все CRUD операции. Даны 3 сущности: Меню, Подменю, Блюдо.
Зависимости:
Условия:
В этом домашнем задании необходимо:
Обернуть программные компоненты в контейнеры. Контейнеры должны запускаться по одной команде “docker-compose up -d” или той которая описана вами в readme.md.
Образы для Docker:
(API) python:3.10-slim
(DB) postgres:15.1-alpine
Написать CRUD тесты для ранее разработанного API с помощью библиотеки pytest
Подготовить отдельный контейнер для запуска тестов. Команду для запуска указать в README.md
В этом домашнем задании необходимо:
Дополнительно:
В этом домашнем задании необходимо:
Фоновая задача: Синхронизация Excel документа и БД. В проекте создаем папку admin. В эту папку кладем файл Menu.xlsx (будет прикреплен к ДЗ). При внесении изменений в файл все изменения должны отображаться в БД. Периодичность обновления 15 сек. Удалять БД при каждом обновлении – нельзя.
Клонировать репозиторий
git clone <ссылка с git-hub>
Перейти в папку /YLab_Fastapi_project
Требуется файл .env - пример в репозитории. Для пробного запуска можно использовать приложенный пример.
Поднять контейнеры в фоновом режиме
docker compose up -d
Чтобы прекратить работу контейнеров воспользуйтесь командой
docker compose down
Если хотите прекратить работу контейнеров с удалением томов (рекомендуется), то дополните команду флагом -v
docker compose down -v
Документация доступна по адресу http://127.0.0.1:8000/docs
Для прогона написанных мной тестов подготовлен отдельный вариант файла docker compose. Сценарий тестирования предполагает старт контейнеров, вывод результатов прохождения тестов на экран и удаление контейнеров вместе с томами.
Если проект был запущен локально раньше, то для стабильного запуска по данной инструкции необходимо остановить ранее запущенный сервис, удалить контейнеры, тома и образы, которые использовались для него.
Требуется файл .env_test - пример в репозитории. Для пробного запуска можно использовать приложенный пример. Переменная CELERY_STATUS должна быть в положении "false".
Для запуска сценария необходимо после клонирования репозитория выполнить в папке /YLab_Fastapi_project следующую команду
docker compose -f docker-compose-pytest.yml up -d && docker logs --follow backend && docker compose -f docker-compose-pytest.yml down -v
telegram @Menshikov_AS e-mail [email protected]