Business Case, Stakeholder Analysis, Project Plan and milestone MIL-001 with review records RC-001 to RC-003, then the Python project: PrettyTable Pokemon table, constants, pytest tests, pyproject.toml, Doxyfile, CI workflow and README. Task: MIL-001#1 Task: MIL-001#2 Task: MIL-001#3 Task: MIL-001#4 Task: MIL-001#5 Task: MIL-001#6 Task: MIL-001#7 Task: MIL-001#8
5.0 KiB
Business Case
Metadata
| Key | Value |
|---|---|
| ID | BC-001 |
| CrossReference | SA-001 |
| Language | en |
| Domain | it |
Version History
| Date | Status | Author | Reviewer | Change | Commit |
|---|---|---|---|---|---|
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending |
Executive Summary
This project delivers the Udemy "100 Days of Code" lesson on adding Python packages from PyPI. It is a small, runnable Python program that builds a table of Pokémon names and types with the PrettyTable package, packaged as a clean, tested and documented repository that other course participants and GitHub visitors can read and run. The effort is deliberately small, and the single runtime dependency is the one the assignment teaches.
Methodological and Standards Foundation
The work follows the SQA and QC framework mounted at framework/ (Business Case, Stakeholder Analysis, Project Plan, milestones, tasks as issues, then code). Quality characteristics follow ISO/IEC 25010:2023. Code follows the framework's coding-conventions skill for Python and is reviewed against its qc-programming-* checklist.
Problem Statement
The assignment solution exists only as lesson material. Without a repository there is nothing to share, compare or reuse, and the install-and-import workflow for PyPI packages is not documented in a reproducible form (virtual environment, dependency declaration, tests).
Business Opportunity
A clear, runnable reference solution lets other course participants compare their code, and gives GitHub viewers a tidy example of a small Python project with tests, documentation and project configuration.
Objectives
- O1: Provide a Python program that prints the Pokémon type table with PrettyTable, using the assignment's function names.
- O2: Document how to create and use a local
.venv, upgrade pip, run the program and run the tests. - O3: Provide pytest tests, a
pyproject.toml, constants inconstants.py, Doxygen comments and a Doxyfile. - O4: Publish the repository with a description and topics.
Scope
In Scope
- Python 3.13 or newer source under
src/, tests undertests/, documents underdocs/. pyproject.toml, Python.gitignore,Doxyfile, and a README built from the template.- Repository description and topics on the git host.
Out of Scope
- Features beyond the lesson (the PrettyTable styling exercises of later lessons).
- Publishing the package to PyPI.
- Using, importing or testing the
.envfile; it is personal and only used to reach the git host.
Expected Benefits
Tangible Benefits
- A runnable, tested repository that others can clone and run in minutes.
- A reproducible environment recipe for Windows, Linux and macOS.
Intangible Benefits
- A consistent portfolio of course assignments.
- Practice with packages, PyPI and project hygiene.
Strategic Alignment
The project supports the participant's goal of completing the bootcamp with consistent, reviewable work, and the community goal of sharing readable solutions.
Success Criteria
| # | Criterion | Target | Measure |
|---|---|---|---|
| 1 | Program prints the Pokémon table | Exit code 0 and the expected table text | pytest test of the rendered table |
| 2 | Tests pass | 100% of tests pass in a fresh .venv |
python -m pytest |
| 3 | README steps work | A new reader runs the program using only the README | Manual walkthrough on one OS |
| 4 | Repository metadata | Description and at least 3 topics set | Inspect the repository page |
Risks
| Risk | Impact | Mitigation |
|---|---|---|
| PrettyTable API changes | Output or tests break | Declare a minimum version in pyproject.toml and test the rendered output |
| Token leaks into the repository | Credential exposure | .env is git-ignored and never imported or tested |
| Over-engineering a tiny assignment | Wasted effort | Keep one runtime dependency and a minimal layout |
Assumptions
- Python 3.13 or newer is installed by the reader.
- PyPI is reachable when installing PrettyTable.
- The git host accepts a description and topics through its API.
Constraints
- Python 3.13 or newer,
venvfor environments, pytest for tests. - Constants live in
constants.py; source uses Doxygen comments. - Configuration lives in
pyproject.toml. - Only the user performs commits, pushes and merges.
Cost–Benefit Assessment
| Costs | Benefits |
|---|---|
| A few hours of the participant's time; no licence or hosting cost | A shareable, tested reference solution and a reusable project template |
Stakeholders
| Stakeholder ID (SA) | Interest in this project |
|---|---|
| S01 | Owns the work and wants an accepted, reviewed result |
| S02 | Wants readable, runnable code with the assignment's function names |
| S03 | Wants a clear description, topics and README, with no runtime dependencies beyond the lesson's |
Recommendation
Proceed — the scope is small, the cost is minimal and the result is directly reusable.