MIL-001 Project Setup
Metadata
| Key |
Value |
| ID |
MIL-001 |
| CrossReference |
BC-001 |
| Language |
en |
| Domain |
it |
Version History
| Date |
Status |
Author |
Reviewer |
Change |
Commit |
| 2026-11-06 |
Accepted |
Jens Tirsvad Nielsen |
AI as stand-in for S01 |
Initial version |
42b3a09 |
Purpose
Decide whether the project skeleton is sound enough to build the lecture steps on: tooling, configuration, folder layout and repository metadata.
Deliverable
A Python project with pyproject.toml, a Python .gitignore, src/ and tests/ folders, constants.py, a Doxyfile, a README from the framework template that explains the local .venv and the test run, and a repository description and topics on the git host.
Go / No-Go Criteria
| # |
Criterion (objectively checkable) |
Go |
No-Go |
| 1 |
pyproject.toml requires Python 3.13 or later and lists Flask as the only runtime dependency |
Yes |
No |
| 2 |
python -m pytest runs in a fresh .venv and exits with 0 |
Yes |
No |
| 3 |
.gitignore ignores .venv, caches and .env |
Yes |
No |
| 4 |
The README states how to create and use .venv and runs python -m pip install --upgrade pip |
Yes |
No |
| 5 |
The repository has a description and topics on the git host |
Yes |
No |
Dependencies
| Depends on |
Reason |
| BC-001, SA-001, PP-001 |
The baseline must be accepted before code |
Traceability
| Business Case objective / KPI / user story |
Reference |
| Objectives 5 and 7 |
BC-001 |
Ownership
| Role |
Stakeholder ID (SA) |
| Owner |
S01 |
| Approving reviewer |
S01 |
Target Date
2026-11-08 — inside the few-day effort stated in the Business Case.
Tasks
| # |
Task |
Summary |
Needs its own Use Case/User Story? |
Reference |
| 1 |
Add pyproject.toml and project layout |
Create pyproject.toml (Python 3.13 or later, Flask as the only runtime dependency, pytest as a test extra), the src/higher_lower/ package and tests/ folder with a smoke test, so python -m pytest runs. |
No |
|
| 2 |
Add constants.py |
Create src/higher_lower/constants.py holding the heading text, colours, GIF URLs and the number range, so no literal is repeated in the code. |
No |
|
| 3 |
Add Python .gitignore |
Add a Python .gitignore that also ignores .venv, caches, .env and generated Doxygen output, so no secret or build output is committed. |
No |
|
| 4 |
Add Doxyfile |
Add a Doxyfile configured for the Python sources and Doxygen comment style, so API documentation can be generated. |
No |
|
| 5 |
Write README with venv and test instructions |
Fill the framework README template: purpose, how to create and use .venv, upgrade pip, install, run, test. Lecture screenshots are added by MIL-004. |
No |
|
| 6 |
Set repository description and topics |
Set a description and topics on the git host repository through its API, reading the token from .env without importing .env into the project. |
No |
|