#FastAPI pet project
Goals:
- to try new framework FastAPI and to implement basic CRUD operations; ✔️
- to try TortoiseORM and Aerich as a database migrations tool; ✔️
- to try using Celery + Redis with FastAPI and to implement all types of relations; ✔️
- to work with files: save files to AWS S3 bucket; ✔️
- to cover endpoints with tests using pytest; ✔️
- to implement simple chat using MongoDB and websockets; ✔️
- to implement caching queries with Redis; ✔️
- to integrate black, flake8 formatting on pre-commit. ✔️
ENVIRONMENT VARIABLES:
Postgres Configs:
- DB_USER
- DB_PASS
- DB_HOST
- DB_NAME
JWT Auth Configs:
- JWT_SECRET
- ACCESS_TOKEN_EXP_MINUTES
- REFRESH_TOKEN_EXP_HOURS
Email Configs:
- EMAIL_HOST_USER
- EMAIL_HOST_PASSWORD
AWS S3 Configs:
- AWS_ACCESS_KEY
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- S3_BUCKET
Celery Redis Broker:
- CELERY_BROKER_URL
Redis Cache:
- REDIS_CACHE_URL
MongoDB Configs:
- MONGODB_URL
Start project
python run.py
Testing
Run tests:
run_tests.sh