# fastfood Fastapi веб приложение реализующее api для общепита. ## Описание Данный проект, это результат выполнения практических домашних заданий интенсива от YLAB Development. Проект реализован на фреймворке fastapi, с использованием sqlalchemy. В качестве базы данных используется postgresql. ## Техническое задание ### Спринт 3 - Паттерны и принципы разработки 1.Вынести бизнес логику и запросы в БД в отдельные слои приложения. 2.Добавить кэширование запросов к API с использованием Redis. Не забыть про инвалидацию кэша. 3.Добавить pre-commit хуки в проект. Файл yaml будет прикреплен к ДЗ. 4.Покрыть проект type hints (тайпхинтами) 5.* Описать ручки API в соответствий c OpenAPI 6.** Реализовать в тестах аналог Django reverse() для FastAPI Требования: ●Код должен проходить все линтеры. ●Код должен соответствовать принципам SOLID, DRY, KISS. ●Проект должен запускаться по одной команде (докер). ●Проект должен проходить все Postman тесты (коллекция с Вебинара №1). ●Тесты написанные вами после Вебинара №2, должны быть актуальны, запускать и успешно проходить Дополнительно: Контейнеры с проектом и с тестами запускаются разными командами. ## Зависимости - docker - docker-compose ## Установка Клонируйте репозиторий > `$ git clone https://git.pi3c.ru/pi3c/fastfood.git` Перейдите в каталог > `$ cd fastfood` Запуск/остановка образов: - Запуск FAstAPI приложения > `$ docker-compose -f compose_app.yml up ` После успешного запуска образов документация по API будет доступна по адресу http://localhost:8000 По завершении работы остановите контейнеры > `$ docker-compose -f compose_app.yml down` - Запуск тестов > `$ docker-compose -f compose_test.yml up` По завершении работы остановите контейнеры > `$ docker-compose -f compose_test.yml down` ## TODO - Написать тесты для кривых данных - Много чего другого :) ## Авторы - Сергей Ванюшкин ## Лицензия Распространяется под [MIT лицензией](https://mit-license.org/).