73 lines
3.3 KiB
Markdown
73 lines
3.3 KiB
Markdown
# 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 | |
|
|
|
|
---
|
|
|
|
[BC-001]: ../business-case.md
|
|
[42b3a09]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/055-higher-lower/commit/42b3a093b773c9743ae3c104e1c30bf3dc480d7c
|