Files
Tirsvad 942c5af8f1
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
Resolve pending commit links
2026-11-06 12:58:01 +08:00

106 lines
5.9 KiB
Markdown

# 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][GM-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][GM-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][GM-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][GM-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][GM-005] |
```plantuml
@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`; `origin` is `Tirsvad-Udemy-100-days-of-code/054-flask`. The plan uses `origin`. 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 `calculate` function and a greeting decorator only in prose; names and exact behaviour follow that prose.
---
[BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-foundation.md
[MIL-002]: ./milestones/mil-002-hello-flask.md
[MIL-003]: ./milestones/mil-003-cli-and-main.md
[MIL-004]: ./milestones/mil-004-functions-decorators.md
[MIL-005]: ./milestones/mil-005-docs-wiki.md
[73a5a95]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/commit/73a5a95d28db041e4f27342cc552e18f7d386410
[GM-001]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/milestone/342
[GM-002]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/milestone/343
[GM-003]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/milestone/344
[GM-004]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/milestone/345
[GM-005]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/milestone/346
[8cd73cc]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/commit/8cd73cc46b3f791e0c23a60809a50e4140089d4e