Files
Tirsvad 88d5fcaddb Set up the project foundation (MIL-001)
pyproject.toml (Python >=3.13, src layout, dev extra), constants.py,
.gitignore, .env.example, Doxyfile, README from the framework template,
smoke tests, and the code review RC-010.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
2026-10-28 14:36:58 +08:00

5.7 KiB

Project Plan

Metadata

Key Value
ID PP-001
CrossReference BC-001, SA-001
Language en
Domain it

Version History

Date Status Author Reviewer Change Commit
2026-10-28 Accepted Jens Tirsvad Nielsen AI as stand-in for S01 Initial version
Accepted after review (RC-003 Go)
f9765fd

Purpose

Schedule the six gateways (Go/No-Go decision points) that deliver the Day 47 Amazon price tracker, one branch and pull request per gateway, from 2026-10-28 to 2026-11-04.

Planning Assumptions

  • Week 1 starts 2026-10-28; the plan ends by 2026-11-04, a soft target for a learning project (BC-001 has no hard deadline).
  • One gateway per day or two; the author is S01 and the AI works as stand-in reviewer in autonomous mode, recorded in each RC-*.
  • The cadence follows SA-001: S01 reviews at each pull request.
  • Source of the dates: the author's estimate on 2026-10-28; there is no external deadline. The baseline is first set here, so there is no earlier baseline to record a change against.
  • No governance document exists in this project; S01 is Responsible and Accountable for every artifact, and the AI is a recorded stand-in reviewer.

Gateway Schedule

Gateway Document Window Decision date Owner Stories Main deliverable Milestone
MIL-001 docs/milestones/mil-001-foundation.md 2026-10-28 2026-10-28 S01 none (technical tasks) Branch mil-001-foundation merged: pyproject.toml, .gitignore, .env.example, constants.py, Doxyfile, README from the framework template, a passing smoke test, and the repository description and topics on the host. Milestone 271
MIL-002 docs/milestones/mil-002-scrape-price.md 2026-10-29 2026-10-29 S01 none (technical tasks) Branch mil-002-scrape-price merged: a scraper that returns the title and the price as a float, a saved copy of the practice page used by tests, a screenshot of the step, and the README section for it. Milestone 272
MIL-003 docs/milestones/mil-003-email-alert.md 2026-10-30 2026-10-30 S01 none (technical tasks) Branch mil-003-email-alert merged: an alert that builds and sends an e-mail with title, price and buy link when the price is below target, with credentials from .env, tests with a mocked SMTP server, a screenshot, and the README section. Milestone 273
MIL-004 docs/milestones/mil-004-request-headers.md 2026-10-31 2026-10-31 S01 none (technical tasks) Branch mil-004-request-headers merged: requests carry the headers from constants.py, tests prove it, a screenshot and a README section. Milestone 274
MIL-005 docs/milestones/mil-005-live-amazon.md 2026-11-01 2026-11-01 S01 none (technical tasks) Branch mil-005-live-amazon merged: URL and selectors configurable for the live page, a detection of a CAPTCHA page with a clear message, tests, a screenshot of the result, and the README section including the limits. Milestone 275
MIL-006 docs/milestones/mil-006-wiki-screenshots.md 2026-11-02 to 2026-11-04 2026-11-04 S01 none (technical tasks) Wiki pages in en, da and ms, one per language per lecture step plus a home page, each explaining what was gained and showing the step screenshot; the wiki is published on the host. Milestone 276

Timeline diagram

@startgantt
Project starts 2026-10-28
[MIL-001 foundation] starts 2026-10-28 and lasts 1 day
[MIL-002 scrape price] starts 2026-10-29 and lasts 1 day
[MIL-003 email alert] starts 2026-10-30 and lasts 1 day
[MIL-004 request headers] starts 2026-10-31 and lasts 1 day
[MIL-005 live amazon] starts 2026-11-01 and lasts 1 day
[MIL-006 wiki and screenshots] starts 2026-11-02 and lasts 3 days
@endgantt

Scope Coverage

Business Case scope item Gateway
Python 3.13, venv, pyproject, pytest, constants, Doxygen MIL-001
Step 1: scrape the price MIL-002
Step 2: e-mail alert and .env MIL-003
Step 3: request headers MIL-004
Step 4: live Amazon page MIL-005
README (MIL-001 and each step) and the three-language wiki MIL-001 to MIL-006

Dependencies

MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006. A No-Go stops the chain: later windows move by the rework time. S01 decides whether the end date 2026-11-04 moves.

Plan Risks

Risk Mitigation
Gitea wiki disabled or not pushable MIL-006 stops and reports; pages stay in docs/wiki/
Amazon blocks the live request (from BC-001 risk 1) MIL-005 documents the outcome; it does not bypass the block

Open Issues

  • Wiki publishing path depends on the host (checked in MIL-006).
  • The e-mail screenshot is rendered from the message the code builds, not from a delivered mail.