Flask Sequence — IB Computer Science
Where this is going
By the end of this sequence, you will build a web application from scratch — a Flask app that creates, reads, updates, and deletes data in a database. A CRUD app.
This is not the IA. This is the minimum build path to get you to the point where the IA is even possible. If you cannot build a basic CRUD app, you cannot build an IA. These skills are table stakes — the things you need to have before you start thinking about your own project, your own client, your own data model.
Week 6 is where you prove it: you'll design and build a complete CRUD application on your own. Think of it as a dress rehearsal for the complexity of the IA, not a mini version of the assessment itself.
Weeks 1-3: Record of Tasks (main quest)
1. flask-hello Routes and strings
2. flask-templates Jinja2 and base.html
3. flask-tasks-file Forms and file I/O
Weeks 4-5: Birthdays (side quest)
4. flask-birthdays-sql Raw SQL with CS50 library
5. flask-birthdays-orm SQLAlchemy + Flask-WTF (group merge)
Week 6: Record of Tasks (return with new powers)
6. flask-plateau Full CRUD rebuild — your dress rehearsal
Each week builds on the last. The starter code always runs before you write anything. You never start from nothing.
This is a sequence of things to DO
Reading this workbook and thinking "yeah, I get it" is not the same as doing it. Every page describes something you should build, run, and test in your own repo. If you haven't typed the code and seen it work in a browser, you haven't done the step.
The concepts here are not hard one at a time. They become hard when you skip steps, fall behind, and have to learn three things at once. The bumpers are here. Stay in the lane.
How to use this workbook
This is not a replacement for the live demo or the assignment repo. It's the reference you open when you're stuck at 10pm and need to remember what @app.route does, or why your function returns instead of prints.
Use the sidebar to navigate to your current week. Use the glossary (linked terms appear throughout) to look up any concept.