TirSystem/git-workflows: Publish wiki / publish-wiki (push) Skipped
TirSystem/git-workflows: Sync GitHub mirror metadata / sync-metadata (push) Skipped
TirSystem/git-workflows: Publish accepted milestones / publish (push) Skipped
TirSystem/git-workflows: OpenGrep / opengrep (push) Skipped
TirSystem/git-workflows: Validate / validate (push) Skipped
TirSystem/git-workflows: Validate / validate (pull_request) Successful in 38s
TirSystem/git-workflows: Release / release (pull_request) Successful in 22s
TirSystem/git-workflows: OpenGrep / opengrep (pull_request) Failing after 5m17s
5.9 KiB
5.9 KiB
Project Plan: Flask Backend Basics
Metadata
| Key | Value |
|---|---|
| ID | PP-001 |
| CrossReference | BC-001, SA-001, MIL-001, MIL-002, MIL-003, MIL-004, MIL-005 |
| Language | en |
| Domain | it |
Version History
| Date | Status | Author | Reviewer | Change | Commit |
|---|---|---|---|---|---|
| 2026-11-06 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | 73a5a95 |
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | S01 | Link each gateway to its synced Gitea milestone | 8cd73cc |
Purpose
Schedule the five gateways that turn the Day 54 lectures into a tested, documented repository, within the Business Case constraint of one branch and pull request per milestone.
Planning Assumptions
- Work starts 2026-11-06 and ends by 2026-11-10; one gateway per day or less.
- Each gateway is one branch and one pull request that closes its issues (SA-001 CM-001).
- The reviewer for every gateway is S01; in autonomous mode the AI acts as stand-in for S01 and records
Mode: autonomous, not independent. - PO language is English, domain IT; the wiki exists in English, Danish and Bahasa Malaysia.
- Sources: the dates and the one-pull-request-per-milestone rule come from the Product Owner's brief and BC-001 Constraints; the review cadence follows SA-001 CM-001.
Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
|---|---|---|---|---|---|---|---|
| Foundation | MIL-001 | 2026-11-06 | 2026-11-06 | S01 | none (technical tasks) | pyproject, gitignore, constants, Doxyfile, README, repo metadata | Milestone 001 |
| Backend and Hello Flask | MIL-002 | 2026-11-06 to 2026-11-07 | 2026-11-07 | S01 | none (technical tasks) | hello.py, tests, screenshots 1 and 2 | Milestone 002 |
| Command line and main | MIL-003 | 2026-11-07 to 2026-11-08 | 2026-11-08 | S01 | none (technical tasks) | main guard, name_demo, cli_basics, screenshots 3 and 4 | Milestone 003 |
| Functions and decorators | MIL-004 | 2026-11-08 to 2026-11-09 | 2026-11-09 | S01 | none (technical tasks) | first_class_functions, decorators, screenshots 5 and 6 | Milestone 004 |
| Docs and wiki | MIL-005 | 2026-11-09 to 2026-11-10 | 2026-11-10 | S01 | none (technical tasks) | three-language wiki, Doxygen, code review | Milestone 005 |
@startgantt
Project starts 2026-11-06
[Foundation] starts 2026-11-06 and ends 2026-11-06
[Foundation Go/No-Go] happens 2026-11-06
[Backend and Hello Flask] starts 2026-11-06 and ends 2026-11-07
[Backend Go/No-Go] happens 2026-11-07
[Command line and main] starts 2026-11-07 and ends 2026-11-08
[CLI Go/No-Go] happens 2026-11-08
[Functions and decorators] starts 2026-11-08 and ends 2026-11-09
[Functions Go/No-Go] happens 2026-11-09
[Docs and wiki] starts 2026-11-09 and ends 2026-11-10
[Docs Go/No-Go] happens 2026-11-10
@endgantt
Scope Coverage
| Business Case scope item | Gateway |
|---|---|
Python source under src/, tests under tests/, documents under docs/ |
MIL-001 to MIL-004 |
pyproject.toml, constants.py, .gitignore, Doxyfile, Doxygen comments |
MIL-001, MIL-005 |
README with .venv, run and test instructions |
MIL-001 to MIL-004 |
| Wiki in en, da, ms with screenshots | MIL-005 |
| Repository description and topics | MIL-001 |
Dependencies
MIL-001 -> MIL-002 -> MIL-003 -> MIL-004 -> MIL-005
A No-Go on a gateway moves every later gateway by the time needed to fix and re-review it. S01 decides whether the end date 2026-11-10 moves; the Business Case sets no fixed deadline, so a move needs only a new Version History row of this plan.
Plan Risks
| Risk | Impact | Mitigation |
|---|---|---|
| Headless screenshot tooling is not available (BC-001 risk 1) | Screenshots delayed | Use Edge or Chrome headless on the host (no user input is taken); otherwise a container |
| Gitea API token lacks scope for topics or wiki (BC-001 risk 3 context) | Metadata or wiki not published | Stop and report; the author sets it by hand |
Repository URL in the brief differs from origin |
Work lands in the wrong repository | Work against origin; record the difference under Open Issues |
Open Issues
- The brief names
https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code;originisTirsvad-Udemy-100-days-of-code/054-flask. The plan usesorigin. Confirm if the other is meant. - "Python greater than 3.13" is read as
>=3.13(the installed interpreter is 3.13). - S03 asks for no runtime dependencies while Flask is required by the assignment; resolved by making Flask the optional extra
web(SA-001 conflict table). - The lecture text mentions the
calculatefunction and a greeting decorator only in prose; names and exact behaviour follow that prose.