diff --git a/README.md b/README.md index e69de29..353dfa6 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,70 @@ +# 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 лицензией](https://www.opensource.org/licenses/mit-license.php). +Подробнее на русском в файле LICENSE.md +