3.7 KiB
fastfood
Fastapi веб приложение реализующее api для общепита.
Описание
Данный проект, это результат выполнения практического домашнего задания интенсива от YLAB Development. Проект реализован на фреймворке fastapi, с использованием sqlalchemy. В качестве базы данных используется postgresql.
Техническое задание
Возможности
В проекте реализованы 3 сущности: Menu, SubMenu и Dish. Для каждого них реализованы 4 метода http запросов: GET, POST, PATCH и DELETE c помощью которых можно управлять данными. Для Menu доступен метод GET возвращающий все его SubMenu. Аналогично для SubMenu реализован метод для возврата всех Dish.
Зависимости
- postgresql Для работы сервиса необходима установленная СУБД. Должна быть создана база данных и пользователь с правами на нее.
- poetry - Система управления зависимостями в Python.
Остальное добавится автоматически на этапе установки.
Установка
Установите и настройте postgresql согласно офф. документации. Создайте пользователя и бд.
Установите систему управления зависимостями
$ pip install poetry
Клонируйте репозиторий
$ git clone https://git.pi3c.ru/pi3c/fastfood.git
Перейдите в каталог
$ cd fastfood
$ poetry install --no-root
Создастся виртуальное окружение и установятся зависимости
Запуск
Запуск проекта возможен в 2х режимах:
-
Запуск в режиме "prod" с ключем --run-server Подразумевает наличие уже созданных таблиц в базе данных(например с помощью Alembic). Манипуляций со структурой БД не происходит. Данные не удаляются.
-
Запуск в режиме "dev" c ключем --run-test-server В этом случае при каждом запуске проекта все таблицы с данными удаляются из БД и создаются снова согласно описанных моделей.
Для запуска проекта сначала активируем виртуальное окружение
$ poetry shell
и запускаем проект в соответстующем режиме
$ python manage.py --ключ
вместо этого, так же допускается и другой вариант запуска одной командой без предварительной активации окружения
$ poetry run python manage.py --ключ
TODO
- Добавить миграции
- Провести рефакторинг, много дублирующего кода
- Много чего другого :)
Авторы
- Сергей Ванюшкин pi3c@yandex.ru
Лицензия
Распространяется под MIT лицензией. Подробнее на русском в файле LICENSE.md