Projects and Exercises
Build increasingly realistic projects throughout the learning path.
Fundamental: terminal calculator
Read two numbers and an operator, support the four basic operations, handle invalid input and repeat until the user enters quit.
Beginner: task manager
Create, list, complete and delete tasks. Start with a list of dictionaries and add JSON persistence afterward.
Intermediate: packaged CLI
Use pyproject.toml, a src layout, dataclasses, type hints and pytest. Provide clear exit codes and error messages. Study PixelVault as a real reference.
Web: database API
Build a FastAPI inventory API with validated schemas, SQLite, repository and service layers, transactions, logging and integration tests.
Automation: backup tool
Add configuration, dry-run mode, checksums, safe paths, logging and a final report. Run it through the operating system scheduler.
Advanced: asynchronous monitor
Check multiple endpoints concurrently with timeouts, retry with backoff, structured logging and a concurrency limit. Test it using a fake HTTP client.
Definition of done
A project has setup instructions, validated inputs, understandable errors, tests for important logic, no committed secrets and a reproducible clean installation.