Backend development¶
The backend is implemented using FastAPI. Read their documentation and also those of Pydantic and SQLAlchemy.
- backend hot-reloads on file changes
- Database schema changes need the removal of the database volume
- Backend tests
docker-compose exec backend bash /app/tests-start.sh
- Backend linting and formatting
- via docker
bash docker-compose exec backend /app/format-imports.sh docker-compose exec backend /app/lint.sh - locally
bash cd backend/app poetry install poetry shell sh scripts/format-imports.sh sh scripts/lint.sh
- via docker
Structure¶
backend/app/app/schemas/- Pydantic schemas that define BioSegment data
db/- contains configuration for the database and initial setup
models/- SQLAlchemy models that define database table
- uses the schemas
crud/- Python functions that implement database actions
- uses the models
api/- endpoints that implement the API
- uses the schemas to define input/output type
- uses the crud actions