Skip to content

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 (without mkdocs and pre-commit).
  • Pre-commit, linting, type-checking, and tests are automated via Makefile and CI.
  • Environment configuration is stage-based (development/production).