Files
031-flash-card/docs/project-plan.md
T
Tirsvad f86bc9136e MIL-013 plan and documents: container and sandbox checks
Milestone MIL-013 (Debian container with GNOME, Windows Sandbox for the
executable), ADR-0005, BC-001 and PP-001 updated. Review records RC-073 to
RC-076, all Go (autonomous mode, not independent).

Task: MIL-013#1
2026-10-15 09:55:21 +08:00

9.1 KiB

Project Plan: Flash Card

Metadata

Key Value
ID PP-001
CrossReference BC-001, SA-001, US-001, MIL-001, MIL-002, MIL-003, MIL-004, MIL-005, MIL-006, MIL-007, MIL-008, MIL-009, MIL-010, MIL-011, MIL-012, MIL-013
Language en
Domain it

Version History

Date Status Author Reviewer Change Commit
2026-10-15 Deprecated Jens Tirsvad Nielsen AI as stand-in for S01 Added gateway MIL-012 Release v0.2.0 (new request of S01) 0264b60
2026-10-15 Accepted Jens Tirsvad Nielsen AI as stand-in for S01 Added gateway MIL-013 Container checks (new request of S01) pending

Purpose

This plan schedules the seven phases (gateways) that deliver the flash card program inside the delivery window of one week that the Business Case sets as a constraint (2026-10-14 to 2026-10-21). Each phase is one milestone and is delivered by one pull request, so the Product Owner (S01) can follow the work step by step.

Planning Assumptions

  • Week 1 starts 2026-10-14; the plan ends by 2026-10-21, per the Business Case constraint.
  • One phase takes one day; the last phase (documentation and publication) has three days because the wiki exists in three languages and the screenshots need the finished program.
  • The baseline documents (Business Case, Stakeholder Analysis, Project Plan, use case documents, ADRs) are accepted before MIL-001 starts, in a pull request of their own.
  • Phases 2 to 5 follow the four steps of the course assignment in order; phase 6 is the Product Owner's extra.
  • S01 is owner and approving reviewer of every phase; in autonomous mode the AI acts as stand-in and the review records say so.

Gateway Schedule

Gateway Document Window Decision date Owner Stories Main deliverable Milestone
Project foundation MIL-001 2026-10-14 2026-10-14 S01 none pyproject, gitignore, skeleton, Doxyfile, first README, word list Milestone MIL-001
Step 1 - User interface MIL-002 2026-10-15 2026-10-15 S01 US-001.01 The window with card and buttons Milestone MIL-002
Step 2 - New flash cards MIL-003 2026-10-16 2026-10-16 S01 US-001.02 Random cards from the word list Milestone MIL-003
Step 3 - Flip the cards MIL-004 2026-10-17 2026-10-17 S01 US-001.03 Flip after 3000 ms Milestone MIL-004
Step 4 - Save progress MIL-005 2026-10-18 2026-10-18 S01 US-001.04 words_to_learn.csv Milestone MIL-005
Spoken Malay word MIL-006 2026-10-19 2026-10-19 S01 US-001.05 Text to speech as optional extra Milestone MIL-006
Documentation and publication MIL-007 2026-10-19 to 2026-10-21 2026-10-21 S01 none README, screenshots, wiki in 3 languages, description and topics Milestone MIL-007
Choose level MIL-008 2026-10-20 2026-10-20 S01 US-001.06 A level choice (100, 1000, all words) before the cards; documents, wiki and screenshots updated
Executable with PyInstaller MIL-009 2026-10-16 2026-10-16 S01 US-001.07 One Windows executable that runs without Python, built by a script; documents, wiki and README updated
Release v0.1.0 MIL-010 2026-10-16 2026-10-16 S01 US-001.08 Tag v0.1.0 and a release with flash-card.exe, its checksum and release notes
Menu bar MIL-011 2026-10-17 2026-10-17 S01 US-001.09 to US-001.12 File menu (open word list, change level, reset word list, exit) and About menu (contact); documents, wiki and screenshots updated
Release v0.2.0 MIL-012 2026-10-18 2026-10-18 S01 US-001.08 Version 0.2.0, tag v0.2.0 and a release with the menu bar, notes and, if the host accepts it, the executable
Container checks MIL-013 2026-10-19 2026-10-19 S01 none A Debian (GNOME) container and Windows Sandbox that run the tests, screenshots and the smoke tests without the host desktop
@startgantt
Project starts 2026-10-14
[Foundation] starts 2026-10-14 and ends 2026-10-14
[Step 1 UI] starts 2026-10-15 and ends 2026-10-15
[Step 2 Cards] starts 2026-10-16 and ends 2026-10-16
[Step 3 Flip] starts 2026-10-17 and ends 2026-10-17
[Step 4 Progress] starts 2026-10-18 and ends 2026-10-18
[Speech] starts 2026-10-19 and ends 2026-10-19
[Documentation] starts 2026-10-19 and ends 2026-10-21
[Foundation Go/No-Go] happens 2026-10-14
[Step 1 Go/No-Go] happens 2026-10-15
[Step 2 Go/No-Go] happens 2026-10-16
[Step 3 Go/No-Go] happens 2026-10-17
[Step 4 Go/No-Go] happens 2026-10-18
[Speech Go/No-Go] happens 2026-10-19
[Documentation Go/No-Go] happens 2026-10-21
[Choose level] starts 2026-10-20 and ends 2026-10-20
[Choose level Go/No-Go] happens 2026-10-20
[Executable] starts 2026-10-16 and ends 2026-10-16
[Executable Go/No-Go] happens 2026-10-16
[Release] starts 2026-10-16 and ends 2026-10-16
[Release Go/No-Go] happens 2026-10-16
[Menu bar] starts 2026-10-17 and ends 2026-10-17
[Menu bar Go/No-Go] happens 2026-10-17
[Release 0.2.0] starts 2026-10-18 and ends 2026-10-18
[Release 0.2.0 Go/No-Go] happens 2026-10-18
[Container checks] starts 2026-10-19 and ends 2026-10-19
[Container checks Go/No-Go] happens 2026-10-19
@endgantt

Scope Coverage

Business Case scope item Gateway
Tkinter program with the assignment's function names MIL-002, MIL-003, MIL-004, MIL-005
Reading data/ms-da.csv MIL-003
Saving and using words_to_learn.csv MIL-005
Optional spoken Malay word MIL-006
pyproject.toml, .gitignore, Doxyfile, .venv instructions, pytest, constants.py MIL-001
README, screenshots, wiki in three languages MIL-007
Repository description and topics MIL-007
Choice of level (new request after MIL-007) MIL-008
Executable built with PyInstaller (new request after MIL-008) MIL-009
Release with the executable attached (new request after MIL-009) MIL-010
Menu bar with File and About menus (new request after MIL-009) MIL-011
Release v0.2.0 with the menu bar (new request after MIL-011) MIL-012
Debian container for tests and headless runs (new request after MIL-012) MIL-013
Framework documents of the baseline Baseline pull request before MIL-001

Dependencies

Baseline → MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006 → MIL-007 → MIL-008 → MIL-009 → MIL-010 → MIL-011 → MIL-012 → MIL-013

A No-Go on a phase moves every later date by the days the rework takes; MIL-008 was added after MIL-007 and takes the unplanned day 2026-10-20, so no buffer is left inside the window; a No-Go moves the end date past 2026-10-21 and S01 decides whether to accept that.

Plan Risks

Risk Impact Mitigation
No display on the machine that runs the review, so the e2e tests skip Window behaviour is checked by the view model tests only The review record states whether the e2e tests ran; the screenshots in MIL-007 prove the window on a machine with a display
The git host's CI is not available The publish workflows cannot run Milestones are published with sync-project.sh and the wiki by SSH push (MIL-007)
The speech extra cannot be installed on the build machine MIL-006 cannot be demonstrated end to end The adapter is tested with fakes; the manual check is recorded as not done

Open Issues

  • No Governance document (GOV): see ADR-0003. S01 is the only approver.
  • The git host's sync-milestones workflow is not installed; whether to install it is S01's decision.