Projects
Every tier closes with at least one project that combines what the tier taught. Each brief describes a scenario and required outcomes โ you decide how to build it, and the acceptance checks tell you when it's working.
Beginner tier
CLI Quiz or Habit Tracker
Build a small, menu-driven command-line program โ a quiz game or a habit tracker, your choice โ that validates input, saves its state to disk between runs, and is covered by your own pytest tests.
Practices: control flow, functions, collections, input validation, file persistence, testing
Expense Analyzer
Build a command-line tool that reads a CSV of expenses and a JSON budget configuration, aggregates spending by category, flags categories over budget, and reports on it โ without crashing on a single malformed row.
Practices: CSV and JSON parsing, pathlib, aggregation, reporting, configuration, error handling, testing
Reusable Package and CLI
Turn a working script into an installable package with a proper src layout, a pyproject.toml, an editable install in a virtual environment, a terminal command, and tests that run against the installed package rather than a loose file.
Practices: modules and packages, packaging layout, virtual environments, documentation, testing