bme280/
├── bme280.py # I²C driver — Bosch calibration algorithms
├── sensor_api.py # Flask HTTP API + MQTT publisher
│
├── tests/
│ ├── test_bme280.py # Driver unit tests (hardware mocked)
│ └── test_api.py # API route tests (Flask test client)
│
├── docs/
│ ├── hardware.md # Components, wiring, I²C address
│ ├── architecture.md # System diagram, component descriptions
│ ├── installation.md # Prerequisites, clone, configure
│ ├── configuration.md # Full environment variable reference
│ ├── usage.md # CLI, HTTP API, cron, Docker
│ ├── api-reference.md # Endpoint documentation with examples
│ ├── home-assistant.md # MQTT auto-discovery, HA integration
│ ├── development.md # Test suite, lint, CI pipeline
│ └── project-structure.md
│
├── .github/
│ └── workflows/
│ └── ci.yml # CI: lint, test, security (pip-audit)
│
├── Dockerfile # Multi-stage: test target + app target
├── docker-compose.yml # Services: test, app
│
├── .env.example # Configuration template
├── requirements.txt # Runtime dependencies
├── requirements-dev.txt # Dev/test dependencies
├── pytest.ini # Pytest configuration
└── .gitignore