main - production branch
fix/bug-name - production bug fixes
release/fastapi-*.*.* - ongoing release
feature/feature-name - feature branch for ongoing release
├── docker
├── core
│ ├── database
│ │ ├── models
│ │ └── migrations
│ ├── schemas
│ │ └── security
│ ├── services
│ ├── health
│ ├── utils
│ └── config.py
├── tests
│ ├── snapshots
│ ├── .env
│ └── conftest.py
├── api
│ ├── v1
│ │ ├── handlers
│ │ └── schemas
│ └── v2
│ ├── handlers
│ └── schemas
├── main.py
├── .env
├── alembic.ini
└── pyproject.toml
Project outer-startup files, such as:
- alembic configuration
- pytest, coverage, flake8, etc configurations (pyproject.toml)
- uvicorn app file
- project requirements lists
Core project features such as:
- settings (config.py)
- database migrations and models
- services (business logic)
- schemas (pydantic models)
- utils (extra utils, such as fastapi-pagination custom Page)
- health (health check endpoint)
Project tests
Project API by versions (v1, v2 and etc.).