← All drills

Build a Budget Tracker App

What you'll be able to do

Build a real, deployable application from first principles in Python — not four disconnected topics, but one tool that gets more capable, one lesson at a time, that you can actually keep using and share a link to.

⌁ Every real budget app — Mint, YNAB, GnuCash among them — is built from exactly this stack: a class model for the domain, persistence, a UI, and background work that doesn't freeze the interface. Streamlit itself (owned by Snowflake) is a widely-used real-world way teams build and ship exactly this kind of tool today.
Start this internship
Create an account to unlock the 11 sections, the workbench, and askThili.
Begin

Sections

1. Build a Budget Tracker App
🔒 locked
2. Lesson 1 - From Script to Structure
🔒 locked
3. Lesson 2 - Encapsulation
🔒 locked
4. Lesson 3 - Inheritance and Abstraction
🔒 locked
5. Lesson 4 - Polymorphism, and a Package Taking Shape
🔒 locked
6. Lesson 5 - Exceptions That Mean Something
🔒 locked
7. Lesson 6 - Persistence
🔒 locked
8. Lesson 7 - A Real Interface
🔒 locked
9. Lesson 8 - Multithreading, the Way Streamlit Needs It
🔒 locked
10. Lesson 9 - Exceptions in a GUI and in a Thread
🔒 locked
11. Lesson 10 - Ship It
🔒 locked

Dig deeper

🔗Object-Oriented Analysis and Design with Applications (Booch, 1991, Addison-Wesley) — landmark reference for the OOP framing
book
🔗PEP 3119 — Introducing Abstract Base Classes
docs
🔗Python threading — official documentation
docs
🔗Streamlit — Session State documentation
docs
🔗Streamlit — Multithreading (read alongside lesson 8: the course shows why a thread should not write to session_state)
docs
🔗thilibudget — the reference implementation you build in this course
code