Project Structure
Structure
Below is an overview of the key files and directories:
!
Project Structure
.
├── CHANGELOG.md # Automatically generated changelog (Commitizen)
├── CONTRIBUTING.md # Guidelines for contributing to the project
├── LICENSE # Project license (MIT)
├── Makefile # Task automation for common development workflows
├── README.md # Project overview, usage, and quickstart
├── __main__.py # Main entrypoint for running the application
├── assets/ # Static assets (images, icons, etc.)
├── dev.Dockerfile # Dockerfile for fast local/dev environment with uv
├── dev.dockerignore # Exclude files from dev Docker image build context
├── docker/ # Docker-related files (volumes, configs, etc.)
│ └── docker-entrypoint.sh # Entrypoint script for Docker containers
├── docker-compose.yml # Compose file for multi-container development
├── docs/ # Documentation source files for MkDocs
├── example.env # Example environment variables for configuration
├── mkdocs.yml # MkDocs configuration (site navigation, theme, etc.)
├── prod.Dockerfile # Production-optimized Dockerfile
├── prod.dockerignore # Exclude files from prod Docker image build context
├── pyproject.toml # Project metadata and configuration (PEP 621, tool configs)
├── requirements-dev.txt # [*] (Optional) Dev dependencies pin file (if used)
├── requirements.txt # Locked, pinned dependencies (auto-generated by uv)
├── src/
│ ├── config/
│ │ ├── __init__.py
│ │ └── env.py # Environment/configuration loading (env file/vars)
│ ├── factory.py # (Placeholder) for app/service factory setup
│ └── utils/
│ ├── __init__.py
│ └── logging/
│ ├── __init__.py
│ ├── config.py # Logging configuration constants
│ └── setup.py # Logging setup function
├── tests/
│ └── test_func.py # Example unit tests (sync & async)
Notes
!
- All configs of development and CI tools are defined in
pyproject.toml
(withoutmkdocs
andpre-commit
). - Pre-commit, linting, type-checking, and tests are automated via Makefile and CI.
- Environment configuration is stage-based (development/production).