Phase 1: Project Setup
Metadata
Version History
| Date |
Status |
Author |
Reviewer |
Change |
Commit |
| 2026-10-07 |
Deprecated |
Jens Tirsvad Nielsen |
S01 |
Initial version |
c24f412 |
| 2026-10-07 |
Accepted |
Jens Tirsvad Nielsen |
S01 |
Accepted after RC-003 (Go) |
c24f412 |
Purpose
Decide whether the project skeleton, tooling and configuration are ready so that application code can be written on top of them.
Deliverable
Repository skeleton with pyproject.toml, Python .gitignore, src/, tests/, constants.py, Doxyfile and a CI workflow that runs pytest.
Go / No-Go Criteria
| # |
Criterion (objectively checkable) |
Go |
No-Go |
| 1 |
pip install -e .[dev] succeeds in a fresh .venv on Python 3.13+ |
Met |
Not met |
| 2 |
pytest runs (collects zero or more tests) without configuration errors |
Met |
Not met |
| 3 |
[project] dependencies in pyproject.toml is empty |
Met |
Not met |
| 4 |
.env and .venv are ignored by .gitignore |
Met |
Not met |
| 5 |
doxygen Doxyfile runs without errors |
Met |
Not met |
Dependencies
| Depends on |
Reason |
| None |
First phase |
Traceability
| Business Case objective / KPI / user story |
Reference |
| Objectives 2 and 3; success criteria 1 and 2 |
BC-001 |
Ownership
| Role |
Stakeholder ID (SA) |
| Owner |
S01 |
| Approving reviewer |
S01 |
Target Date
2026-10-09 — start of the course project, no external deadline.
Tasks
| # |
Task |
Summary |
Needs its own Use Case/User Story? |
Reference |
| 1 |
Add pyproject.toml |
Configure the project with requires-python >= 3.13, a src/ layout, no runtime dependencies and pytest as an optional dev dependency, so that setup is reproducible for S02. |
No |
|
| 2 |
Review Python .gitignore |
Confirm the Python .gitignore ignores .venv/, .env, caches and generated Doxygen output so tokens and build artefacts never reach the repository (risk in BC-001). |
No |
|
| 3 |
Create src and tests skeleton with constants.py |
Create src/coffee_machine/ with __init__.py and constants.py (menu data, resources, coin values, command words) and an empty tests/ package, following the coding conventions. |
No |
|
| 4 |
Add Doxyfile |
Add a Doxyfile configured for Python (OPTIMIZE_OUTPUT_JAVA, input src/, output docs/api/) so Doxygen comments in the source can be built into documentation. |
No |
|
| 5 |
Configure CI workflow |
Add a CI workflow for the git host that creates a venv, installs the project with the dev extra and runs pytest on Python 3.13, to be described in the README. |
No |
|