fastfood/README.md

3.7 KiB
Raw Blame History

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

  • Добавить миграции
  • Провести рефакторинг, много дублирующего кода
  • Много чего другого :)

Авторы

Лицензия

Распространяется под MIT лицензией. Подробнее на русском в файле LICENSE.md