Skip to content

suntrackspb/fastapi-menu

Repository files navigation

GitHub last commit (branch) pre-commit

Homework in course from YLab

Project description

RESTful API для управления меню, имеет таблицы: Меню, подменю, блюдо. CRUD операции для всех таблиц, кэширование ответов, импорт и экспорт данных в формате xlsx, (также Google Sheet)

Подсчёт процентов скидки из столбца G / Реализовано через computed_field в /app/schemas/data.py, /app/schemas/dish.py

Installation:

git clone https://github.com/suntrackspb/fastapi-menu.git
cd fastapi-menu

Run on Docker:

#Start
docker-compose up -d --build

Open http://localhost:8000/docs/

#Stop & delete
docker-compose down --rmi all --remove-orphans

Run Tests on Docker:

docker-compose -f docker-compose-test.yaml up -d --build

docker start -a fastapi_test_app
#Stop & delete
docker-compose -f docker-compose-test.yaml down --rmi all --remove-orphans

Run on local:

Tested:

  • on Manjaro Linux: conda package manager, python 3.10.12
  • on WSL2 Ubuntu: pip package manager, Python 3.10.6
  • on Windows 11: pip package manager, Python 3.11.3
# Create PostgreSQL database instance
docker run -itd \
	--name fastapi-menu-db \
	-e POSTGRES_PASSWORD=postgres \
	-p 5432:5432 \
	-v /dist:/var/lib/postgresql/dist \
	postgres

or use your PostgreSQL Server, but you need change auth data in .env file

docker run --name some-redis -d redis
#Linux:
python3 -m venv venv

#Windows PowerShell:
python -m venv venv
#Linux:
source venv/bin/activate

#Windows PowerShell:
.\venv\Scripts\Activate.ps1
#Linux:
pip install -r requirements.txt

#Windows PowerShell:
.\venv\Scripts\python.exe -m pip install -r requirements.txt
#Linux:
python3 run.py

#Windows PowerShell:
python run.py

#Run Tests
pytest

Open http://localhost:8000/docs/