2024-01-22 20:54:01 +03:00
# fastfood
Fastapi веб приложение реализующее api для общепита.
2024-01-28 16:29:54 +03:00
## Описание
2024-01-29 02:19:02 +03:00
Данный проект, это результат выполнения практических домашних заданий интенсива от YLAB Development. Проект реализован на фреймворке fastapi, с использованием sqlalchemy. В качестве базы данных используется postgresql.
2024-01-22 20:54:01 +03:00
2024-01-29 02:19:02 +03:00
## Техническое задание
2024-02-05 23:14:23 +03:00
### Спринт 3 - Паттерны и принципы разработки
2024-01-22 22:05:52 +03:00
2024-02-05 23:14:23 +03:00
1.Вынести бизнес логику и запросы в БД в отдельные слои приложения.
2024-01-22 22:05:52 +03:00
2024-02-05 23:14:23 +03:00
2.Добавить кэширование запросов к API с использованием Redis. Н е забыть про инвалидацию кэша.
2024-01-22 22:05:52 +03:00
2024-02-05 23:14:23 +03:00
3.Добавить pre-commit хуки в проект. Файл yaml будет прикреплен к ДЗ.
2024-01-22 20:54:01 +03:00
2024-02-05 23:14:23 +03:00
4.Покрыть проект type hints (тайпхинтами)
2024-01-29 02:19:02 +03:00
2024-02-05 23:14:23 +03:00
5.* Описать ручки API в соответствий c OpenAPI
2024-01-29 02:19:02 +03:00
2024-02-05 23:14:23 +03:00
6.** Реализовать в тестах аналог Django reverse() для FastAPI
2024-01-29 02:19:02 +03:00
2024-02-05 23:14:23 +03:00
Требования:
●Код должен проходить все линтеры.
●Код должен соответствовать принципам SOLID, DRY, KISS.
●Проект должен запускаться по одной команде (докер).
●Проект должен проходить все Postman тесты (коллекция с Вебинара №1).
●Тесты написанные вами после Вебинара №2, должны быть актуальны, запускать и успешно проходить
2024-01-29 02:19:02 +03:00
2024-02-05 23:14:23 +03:00
Дополнительно:
Контейнеры с проектом и с тестами запускаются разными командами.
2024-01-22 20:54:01 +03:00
## Зависимости
2024-01-29 02:19:02 +03:00
- docker
- docker-compose
2024-01-22 20:54:01 +03:00
## Установка
2024-01-31 02:14:43 +03:00
2024-01-29 02:19:02 +03:00
Клонируйте репозиторий
> `$ git clone https://git.pi3c.ru/pi3c/fastfood.git`
Перейдите в каталог
> `$ cd fastfood`
2024-01-31 02:21:12 +03:00
Запуск/остановка образов:
2024-01-31 01:05:28 +03:00
- Запуск FAstAPI приложения
2024-01-31 02:14:43 +03:00
> `$ docker-compose -f compose_app.yml up `
2024-02-03 01:08:04 +03:00
После успешного запуска образов документация по API будет доступна по адресу < a href = "http://localhost:8000/docs" > http://localhost:8000< / a >
2024-01-31 02:21:12 +03:00
2024-01-31 01:05:28 +03:00
По завершении работы остановите контейнеры
> `$ docker-compose -f compose_app.yml down`
- Запуск тестов
2024-01-30 23:11:40 +03:00
> `$ docker-compose -f compose_test.yml up`
2024-01-31 02:14:43 +03:00
2024-01-31 01:05:28 +03:00
По завершении работы остановите контейнеры
> `$ docker-compose -f compose_test.yml down`
2024-01-29 02:19:02 +03:00
2024-01-22 20:54:01 +03:00
## TODO
2024-01-29 22:22:36 +03:00
- Написать тесты для кривых данных
2024-01-22 20:54:01 +03:00
- Много чего другого :)
## Авторы
- Сергей Ванюшкин < pi3c @ yandex . ru >
## Лицензия
2024-01-22 22:05:52 +03:00
Распространяется под [MIT лицензией ](https://mit-license.org/ ).