Uses async DB connections.
Database:
- PostgreSQL database (with asyncpg)
- pgAdmin administration interface
Backend:
- Python 3.10
- Uvicorn ASGI web server
- Gunicor for managment Uvicorn workers
- FastAPI web framework
- SQLModel - an ORM, based on SQLAlchemy and Pydantic
- Strawberry for GraphQL
- Alembic for migrations
- Celery task queue
- Flower Celery web monitor
- RabbitMQ message broker
- Redis for Celery result backend
- Pytest for tests
Frontend:
- Nginx web server
- React - a js library for building user interfaces
- Refine react CRUD framework
- Ant Design UI
- Vite build tool
Tools:
- Docker and docker-compose
- Makefile for shortcuts
FastAPI doesn't create db tables on start, use alembic migrations for it.
# See Makefile
make migrations m="migration message" # create migrations
make migrate # apply migrations to db
make downgrade # downgrade last migration
- article: FastAPI with Async SQLAlchemy, SQLModel, and Alembic
- github: FastAPI, Strawberry