Backend overview
The FastAPI service.
Routers are mounted under /api in app/main.py. Interactive OpenAPI docs are served at /api/docs.
FastAPI backend service and router hierarchy
public/docs/images/docs-backend-architecture.png
How the code is organised
- Business logic lives in app/services.
- Database models live in app/models.
- Request and response schemas live in app/schemas.
- Background tasks live in app/tasks and are executed by Celery.
Data access
The backend uses SQLAlchemy's async engine, and schema changes are applied with Alembic migrations. See Database and migrations.