What problem does it solve?
Unstructured or “vibe-coded” FastAPI projects become hard to maintain, test, and evolve because HTTP handlers, business logic, validation schemas, and persistence concerns are mixed together in the wrong places.
Core Features & Use Cases
- Domain-driven folder separation: Co-locates router, service, schemas, models, and dependencies per feature domain to reduce cross-file confusion and enable safe incremental refactors.
- Clear responsibility boundaries: Enforces thin routers (HTTP-only) and orchestration/business rules in the service layer (no FastAPI/HTTP knowledge).
- Explicit request/response contracts: Uses separate Pydantic input and output schemas so the API contract is decoupled from SQLAlchemy ORM models.
- Dependency and configuration discipline: Centralizes settings in config.py and isolates DB session wiring in database.py and Depends() logic in dependencies.py.
Quick Start
Ask your coding agent to reorganize each feature domain into {domain}/router.py, {domain}/service.py, {domain}/schemas.py, {domain}/models.py, and {domain}/dependencies.py, then update main.py to register routers with consistent prefixes and tags.