Files
2026-10-24 23:35:34 +08:00

4.6 KiB

Project Plan

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-10-24 Accepted Jens Tirsvad Nielsen S01 Initial version c5a6ed5

Purpose

This plan schedules the five phases that deliver the Day 40 flight club (see BC-001) in a two-week window. One branch and one pull request per milestone keep track of the steps.

Planning Assumptions

  • The plan starts 2026-10-24 and ends by 2026-11-07.
  • Each phase ends in a pull request that closes its issues; the Product Owner is S01 (SA-001).
  • Autonomous mode: after the user accepts this plan, the AI creates, reviews as stand-in for S01, commits and merges each phase.
  • Tests never use the real .env, the network, SMTP or the WhatsApp session.

Gateway Schedule

Gateway Document Window Decision date Owner Stories Main deliverable Milestone
Baseline and project setup MIL-001 2026-10-24 to 2026-10-26 2026-10-26 S01 none Project skeleton, Day 39 code base, CI, repository metadata
Flight data and indirect search MIL-002 2026-10-26 to 2026-10-29 2026-10-29 S01 none FlightData.stops, check_flights with is_direct, indirect fallback in main
Customer emails MIL-003 2026-10-29 to 2026-10-31 2026-10-31 S01 none DataManager reads the users sheet and all settings in init
Email notifications and main program MIL-004 2026-10-31 to 2026-11-04 2026-11-04 S01 none NotificationManager.send_emails and the final main flow
Documentation and wiki MIL-005 2026-11-04 to 2026-11-07 2026-11-07 S01 none README, wiki en/da/ms, screenshots
@startgantt
Project starts 2026-10-24
[Baseline and project setup] starts 2026-10-24 and ends 2026-10-26
[Flight data and indirect search] starts 2026-10-26 and ends 2026-10-29
[Customer emails] starts 2026-10-29 and ends 2026-10-31
[Email notifications and main program] starts 2026-10-31 and ends 2026-11-04
[Documentation and wiki] starts 2026-11-04 and ends 2026-11-07
[MIL-001 Go/No-Go] happens 2026-10-26
[MIL-002 Go/No-Go] happens 2026-10-29
[MIL-003 Go/No-Go] happens 2026-10-31
[MIL-004 Go/No-Go] happens 2026-11-04
[MIL-005 Go/No-Go] happens 2026-11-07
@endgantt

Scope Coverage

Business Case scope item Gateway
Day 39 code carried over, pyproject, constants, .gitignore, Doxyfile, venv MIL-001
CI workflows, repository description and topics MIL-001
FlightData stops, check_flights with is_direct, indirect fallback MIL-002
DataManager.get_customer_emails and settings in init MIL-003
NotificationManager.send_emails, direct and stopover messages, main.py MIL-004
README, wiki in en/da/ms, screenshots MIL-005

Dependencies

MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005

A No-Go on a phase moves every later date by the rework time.

Plan Risks

Risk Impact Mitigation
CI workflows need changes or a runner the host lacks MIL-001 slips Install only fitting workflows; stop and report after three failed fixes
Screenshots cannot be captured without real data MIL-005 slips Use mock data and a test run only
SMTP values are missing from the local .env Real mails cannot be sent Tests use fakes; the participant adds the values before a real run

Open Issues

  • The local .env has no SMTP address, email address or app password, and no "users" sheet endpoint; they are needed only for a real run, not for the build or the tests.
  • The users sheet column names are assumed to be firstName, lastName and email (Sheety camel-cases the Google Form headings); the participant can correct them before acceptance.
  • The lesson's starter zip uses Twilio; this project keeps the Day 39 pywhatkit WhatsApp delivery instead, as the Business Case records.