Files
TirsvadandClaude Sonnet 5.5 28ec0e85d8
CI / test (push) Successful in 46s
CI / test (pull_request) Successful in 46s
Resolve pending commit links and add framework submodule
Replace `pending` in the Version History of the planning documents and
review records with the link to commit c24f412, and add the framework
gitlink that was missing from that commit.

Refs #1
Refs #2
Refs #3
Refs #4
Refs #5

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 10:45:17 +08:00

5.3 KiB
Raw Permalink Blame History

Business Case: OOP Coffee Machine

Metadata

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

Version History

Date Status Author Reviewer Change Commit
2026-10-07 Deprecated Jens Tirsvad Nielsen S01 Initial version c24f412
2026-10-07 Accepted Jens Tirsvad Nielsen S01 Fixed Cost-Benefit justification and added completion constraint
Accepted after RC-001 (Go)
c24f412

Executive Summary

The Udemy course "100 Days of Code: The Complete Python Pro Bootcamp" asks participants to build an object-oriented coffee machine program that uses Menu, CoffeeMaker and MoneyMachine classes. This project delivers that assignment as a small, readable, runnable Python repository that other course participants and GitHub visitors can use as a reference solution.

Methodological and Standards Foundation

Quality characteristics follow ISO/IEC 25010:2023. Planning follows the framework in framework/: Business Case, Stakeholder Analysis, Project Plan, milestones, tasks synced as issues, then code. Code follows the coding-conventions skill (Python) and is reviewed against its qc-programming-* checklist.

Problem Statement

The course assignment is solved privately in the lesson editor. There is no reproducible repository with tests, documentation and run instructions that a fellow participant can clone and run, or that a GitHub visitor can browse.

Business Opportunity

A clean, tested and documented repository lets participants compare solutions and lets viewers find ideas, at the cost of a few hours of work.

Objectives

  1. Deliver a coffee machine program with the assignment's class and method names.
  2. Cover the behaviour with automated pytest tests.
  3. Document how to set up, run and test the project on Windows, Debian Linux and macOS.
  4. Publish the repository with a description, topics and a README.

Scope

In Scope

  • Python 3.13+ package under src/, tests under tests/, documents under docs/.
  • pyproject.toml, Python .gitignore, constants.py, Doxygen comments and a Doxyfile.
  • A README following the course template, including .venv and pip instructions.
  • Repository description and topics on the git host.

Out of Scope

  • Runtime dependencies, a GUI or a database.
  • Committing, pushing or merging by the assistant (the Product Owner does this).
  • Reading or testing the .env file from the project code.

Expected Benefits

Tangible Benefits

  • A runnable program and a passing test suite.
  • A README that reproduces setup in under five minutes.

Intangible Benefits

  • Practice of object-oriented design and a documented workflow.
  • A reference other participants can learn from.

Strategic Alignment

The project supports the Product Owner's learning goal of completing the 100 Days of Code bootcamp with a professional working method.

Success Criteria

# Criterion Target Measure
1 Tests pass 100 % of tests green pytest exit code 0
2 Runtime dependencies 0 [project] dependencies in pyproject.toml is empty
3 Setup reproducible README steps work on a clean clone Product Owner follows the README once
4 Assignment names kept get_items, find_drink, is_resource_sufficient, make_payment, make_coffee, report present Review of source
5 Repository presentable Description and at least 3 topics set Check on the git host

Risks

Risk Impact Mitigation
Token in .env leaks into the repository High .env stays in .gitignore; the code never reads it; it is used only for the sync tool
Tests drift from the assignment behaviour Medium Tests are written from the assignment text and reviewed against qc-programming-python
Doxygen is not installed on a viewer's machine Low The README documents the optional install; docs are not needed to run

Assumptions

  • Python 3.13 or newer is available on the Product Owner's machine.
  • The git host accepts the API token in .env for the sync.

Constraints

  • Python greater than 3.13, venv, pytest, pyproject.toml.
  • Constants live in constants.py; source comments use Doxygen style.
  • Folder structure src/, tests/, docs/; pull requests per step.
  • Target completion 2026-10-16, the end of the last phase in PP-001.

Cost–Benefit Assessment

Costs Benefits
A few hours of the Product Owner's time; no licence or hosting cost Reusable reference repository and a documented working method

The assessment is qualitative on purpose: this is a personal learning project with no revenue, budget or monetary cost to quantify.

Stakeholders

Stakeholder ID (SA) Interest in this project
S01 Completes the assignment with a professional method
S02 Wants readable, runnable code and instructions
S03 Wants a clear description, topics and README

Recommendation

Proceed — the scope is small, has no runtime dependencies and gives a lasting reference repository.