This reference explains the major directories and files in the repository.
aiogram-miniapp-template/
├── docs/
│ ├── guides/
│ ├── reference/
│ └── tutorials/
├── migrations/
├── nginx/
├── scripts/
├── source/
│ ├── api/
│ ├── config/
│ ├── constants/
│ ├── database/
│ ├── factory/
│ ├── infrastructure/
│ ├── locales/
│ ├── schemas/
│ ├── services/
│ ├── telegram/
│ └── utils/
├── tests/
├── webapp/
│ ├── public/
│ └── src/
├── docker-compose.yml
├── docker-compose.dev.yml
├── Dockerfile
├── webapp.Dockerfile
├── pyproject.toml
└── source/__main__.py
docs/: user and developer documentation.source/api/: FastAPI Mini App backend.source/telegram/: aiogram handlers, routers, filters, FSM.source/services/: business logic layer.source/database/: models, repositories, Unit of Work.source/factory/: bot, dispatcher, container, API setup.source/utils/: helpers (logging, i18n, validators).webapp/: React Mini App frontend.nginx/: reverse proxy configs.migrations/: Alembic migration files.
.env.example: example environment variables.docker-compose.yml: full stack (bot, API, webapp, nginx, db, redis).docker-compose.dev.yml: db and redis for local dev.Dockerfile: backend container (non-root, Python 3.12).webapp.Dockerfile: frontend build container.
Symptoms: New files placed in the wrong layer.
Cause: Unclear structure boundaries.
Solution: Add business logic in services/, DB queries in repositories/, handlers in telegram/.
- DO keep layers separated (handlers -> services -> repositories).
- DO update docs when adding new top-level components.
- See Architecture
- Read Handlers