Add project documentation and framework setup
- Initialize project documentation structure - Add business case and stakeholder analysis - Create project plan with four milestones - Setup framework integration via git submodule - Configure gitignore for project structure
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# Business Case
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | BC-001 |
|
||||
| CrossReference | [SA-001] |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-10-04 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Day 10 of the Udemy course "100 Days of Code: The Complete Python Pro Bootcamp" asks for a console calculator that uses functions, a dictionary of functions, user input, a loop and recursion. This project delivers it as a small, tested and documented Python 3.13+ program with no runtime dependencies.
|
||||
|
||||
## Methodological and Standards Foundation
|
||||
|
||||
The SQA and QC framework in `framework/` (plan first, then code), ISO/IEC 25010:2023 for quality characteristics, and the Python conventions of the `coding-conventions` skill.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
The assignment needs a finished, verifiable result with setup and run instructions, not a single untested script.
|
||||
|
||||
## Business Opportunity
|
||||
|
||||
A compact reference project that shows the lecture concepts and can serve as the template for later course days.
|
||||
|
||||
## Objectives
|
||||
|
||||
1. Add, subtract, multiply and divide two numbers from console input.
|
||||
2. Store the operations as functions in a dictionary and call them through it.
|
||||
3. Let the user continue with the previous result or start a new calculation, restarting by recursion.
|
||||
4. Cover the behaviour with automated tests and document setup, run and tests in the README.
|
||||
|
||||
## Scope
|
||||
|
||||
### In Scope
|
||||
|
||||
Console program under `src/`, tests under `tests/`, `pyproject.toml`, `Doxyfile`, README, ASCII title and calculator, repository description and topics.
|
||||
|
||||
### Out of Scope
|
||||
|
||||
Graphical or web interface, further operations, packaging for PyPI, runtime dependencies.
|
||||
|
||||
## Expected Benefits
|
||||
|
||||
### Tangible Benefits
|
||||
|
||||
A working, tested calculator and a reproducible setup with a local `.venv`.
|
||||
|
||||
### Intangible Benefits
|
||||
|
||||
Practice with the plan-first process on a small project.
|
||||
|
||||
## Strategic Alignment
|
||||
|
||||
Supports completing the Python Pro Bootcamp with reviewed, portfolio-quality projects.
|
||||
|
||||
## Success Criteria
|
||||
|
||||
| # | Criterion | Target | Measure |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | Operations and loop work | All tests pass | `python -m pytest` |
|
||||
| 2 | Setup is reproducible | README steps work on a clean `.venv` | Manual run of the README |
|
||||
| 3 | No runtime dependencies | Empty dependency list | `pyproject.toml` |
|
||||
|
||||
## Risks
|
||||
|
||||
| Risk | Impact | Mitigation |
|
||||
| --- | --- | --- |
|
||||
| Doxygen is not installed locally | Docs build not checked | README names it as optional |
|
||||
| Token in `.env` leaks | Account compromise | `.env` stays git-ignored and is never read by the project |
|
||||
|
||||
## Assumptions
|
||||
|
||||
- Python 3.13 or newer is installed.
|
||||
- The git host is reachable for issues and pull requests.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Python 3.13 or newer, `venv`, folders `src/`, `tests/`, `docs/`, constants in `constants.py`.
|
||||
- No commit or push without the Product Owner's request.
|
||||
|
||||
## Cost–Benefit Assessment
|
||||
|
||||
| Costs | Benefits |
|
||||
| --- | --- |
|
||||
| A few hours of the Product Owner's time | A finished, documented assignment and a reusable project skeleton |
|
||||
|
||||
## Stakeholders
|
||||
|
||||
| Stakeholder ID (SA) | Interest in this project |
|
||||
| --- | --- |
|
||||
| S01 | Owns the assignment, does the work and accepts each milestone |
|
||||
|
||||
## Recommendation
|
||||
|
||||
Proceed — the scope is small, the cost is low and it completes the assignment.
|
||||
|
||||
---
|
||||
|
||||
[SA-001]: ./stakeholder-analysis.md
|
||||
Reference in New Issue
Block a user