Aliakseeva / MenuApp

Restaurant menu REST API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MenuApp

Restaurant menu REST API with CRUD-operations, cache and pancakes!

See OpenAPI Specification: http://0.0.0.0:8000/

Based on:

🐍 Python3
⚑ FastAPI Web framework
🐘 PostgreSQL database
⏳ Redis-cache
πŸ“œ SQLAlchemy ORM
πŸ“ Alembic database migration tool
πŸ¦„ Uvicorn ASGI web server
🐳 Docker containers
πŸ₯¦ Celery-tasks
🐰 RabbitMQ broker
βœ… Pytest

DOCKER RUN:

1. Clone repository:
git clone https://github.com/Aliakseeva/MenuApp
2. Run docker-compose:

Make sure you are located in project repository!

docker-compose up
3. Done! Wanna test it? Run:
docker-compose -f docker-compose-tests.yml up

MANUAL RUN:

1. Clone repository:
git clone https://github.com/Aliakseeva/MenuApp
2. Set up .evn file, for example:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASS=postgres

REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

RABBITMQ_HOST=rabbit
RABBITMQ_PORT=5672
RABBITMQ_DEFAULT_USER=rabbit
RABBITMQ_DEFAULT_PASS=rabbit
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS='-rabbit disk_free_limit 2147483648'
3. Create virtual environment and activate it:

Make sure you are located in project repository!

python -m venv venv
source MenuApp/venv/Scripts/activate
4. Install requirements:
pip install -r MenuApp/requirements.txt
5. Apply migrations:
cd MenuApp/
alembic upgrade head
6. Run redis, rabbit servers, and start the project:
redis-server
docker run -d -p 5672:5672 rabbit
uvicorn src.main:app --reload
7. You are awesome! Enjoy! 😼

About

Restaurant menu REST API

License:MIT License


Languages

Language:Python 98.7%Language:Mako 1.0%Language:Dockerfile 0.3%