Add baseline: Business Case, Stakeholder Analysis, Project Plan and milestones
Refs the three milestones MIL-001 to MIL-003; reviews RC-001 to RC-005 (Go).
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# MIL-001 Project Setup
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | MIL-001 |
|
||||
| CrossReference | [BC-001], [SA-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-10-17 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version; reviewed in RC-003 (Go) | pending |
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
Decide whether the project skeleton is ready to hold code: configuration, tooling, ignore rules and repository metadata are in place and reviewed.
|
||||
|
||||
## Deliverable
|
||||
|
||||
A Python 3.13+ project skeleton: `pyproject.toml` with pytest and no runtime dependencies, `.gitignore`, `.env.example`, `src/` and `tests/` folders, `constants.py`, `Doxyfile`, `.venv` instructions, the assignment data files, and the repository description and topics on the git host. One pull request.
|
||||
|
||||
## Go / No-Go Criteria
|
||||
|
||||
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | `python -m pip install -e .[dev]` succeeds in a fresh `.venv` and `python -m pytest` runs (a smoke test passes) | Go | No-Go |
|
||||
| 2 | `pyproject.toml` requires Python `>=3.13` and lists no runtime dependencies | Go | No-Go |
|
||||
| 3 | `.gitignore` ignores `.venv/`, `__pycache__/` and `.env`; `.env` is not tracked | Go | No-Go |
|
||||
| 4 | `Doxyfile` exists and `doxygen Doxyfile` runs without error (or the gap is recorded) | Go | No-Go |
|
||||
| 5 | Repository description and topics are set on the git host (checked through the API) | Go | No-Go |
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Depends on | Reason |
|
||||
| --- | --- |
|
||||
| none | First milestone |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Business Case objective / KPI / user story | Reference |
|
||||
| --- | --- |
|
||||
| Objective 3 (tests), objective 5 (publish) | [BC-001] |
|
||||
| S01, S03 concerns | [SA-001] |
|
||||
|
||||
## Ownership
|
||||
|
||||
| Role | Stakeholder ID (SA) |
|
||||
| --- | --- |
|
||||
| Owner | S01 |
|
||||
| Approving reviewer | S01 |
|
||||
|
||||
## Target Date
|
||||
|
||||
2026-10-18 - within the schedule of the Business Case constraints.
|
||||
|
||||
## Tasks
|
||||
|
||||
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | Configure pyproject and tooling | Create `pyproject.toml` (`requires-python >=3.13`, no runtime dependencies, an optional `dev` extra with pytest, pytest configuration with `pythonpath = src`), a Python `.gitignore` that also ignores `.env`, and `.env.example` listing `GMAIL_TOKEN`. The token in `.env` is for personal use only and is never read by tests. | No | |
|
||||
| 2 | Create src and tests layout with constants.py | Create the `src/birthday_wisher/` package with `constants.py` (file names, `[NAME]` placeholder, SMTP host and port, subject, environment variable names) and a `tests/` folder with a smoke test, so later work has a place to land. | No | |
|
||||
| 3 | Add assignment data files | Add `birthdays.csv` (header `name,email,year,month,day`, dummy rows only, never a real address) and `letter_templates/letter_1.txt` to `letter_3.txt` from the course starter, keeping the `[NAME]` placeholder. | No | |
|
||||
| 4 | Add Doxyfile | Add a `Doxyfile` that documents `src/` from the Doxygen comments and writes its output to an ignored `docs/doxygen/` folder. | No | |
|
||||
| 5 | Set repository description and topics | Set the description and topics on the git host through its API, using `GITEA_TOKEN` read from the environment or `.env` without printing it. Stop and report if the token is missing or rejected. | No | |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
[SA-001]: ../stakeholder-analysis.md
|
||||
Reference in New Issue
Block a user