Help a workshop host reconcile per-participant materials, reusable equipment and an inventory snapshot. Use explicit unit conversions and declared sharing rules to compute shortages, keep unconvertible quantities visible, and export a packing list with a participant-count comparison.
The implementation uses Python 3.10+ and standard libraries. Samples are original teaching data. Read API.md for exact input, output and error contracts.
Build your version
python3 scripts/project_test.py workshop-materials-planner --init learning-artifacts/workshop-materials-planner
python3 scripts/project_test.py workshop-materials-planner --stage 1 --path learning-artifacts/workshop-materials-planner --strictA fresh starter fails clearly until you implement the first contract. Later stages retain your source file. The supplied CLI and presentation helpers are scaffolding; all domain decisions call your implementation.
python3 scripts/project_test.py workshop-materials-planner --all --path learning-artifacts/workshop-materials-planner --strict
cd learning-artifacts/workshop-materials-planner
python3 cli.py samples/input.json --output my-outputRun the reference and your own input
python3 scripts/project_test.py workshop-materials-planner --all --solution --strict
cd projects/workshop-materials-planner/solution
python3 cli.py samples/input.json --output demo-output
python3 cli.py /absolute/path/to/your-input.json --output your-outputInput JSON contains participants, materials, inventory, conversions and optional compare counts. Outputs packing-list.csv, shortages.json, planner.html. The slider supports 0 through 100 participants; the CLI supports arbitrary nonnegative integers. Download decisions.json to save the chosen count, rerun with --decisions decisions.json, then import packing-list.csv into a spreadsheet with csv.DictReader.
Worked example and limits
Eight participants need paper per person and scissors per group of three. A bottle of glue has no known milliliter quantity unless you supply that conversion.
Sharing assumes one concurrent session and unlimited reuse within each group. It does not schedule sequential workshops, procurement lead times or material substitutions.
Stages
- Model participants, materials and inventory units
- Scale consumables and shared equipment separately
- Compute shortages and review uncertain conversions
- Export packing lists and participant-count scenarios