Flask & the project: the system gets a face
420-302-VA · WEEK 11 · FALL 2026

Stage 6 of 6 · Lab session · Monday, November 16

Lab & hand-in

Today's lab ends with the full circle, a phone steering a control loop through four protocols, and with your project framed on paper. D1 is due this week per the brief on Omnivox; the session reserves a block for it, and the teacher circulates for project questions all afternoon.

The two-hour plan

MinutesBlockDone means
0–10Station up: Week 10 stack running (broker, node loop), repo pulled, venv activeFirehose shows the light topic flowing; hostname -I noted
10–30Flask: install, first serve, 0.0.0.0, UFW 5000, templateThe page loads on the laptop and on a phone over bench Wi-Fi
30–55The bridge: paho on loop_start, live /api/lightJSON shows real readings; shading the sensor moves the number
55–80The page: fetch loop, then rungs 1–2 (status chip, setpoint control)The full circle demonstrated: Set on the phone, the LED answers
80–95Ladder: rung 3 or 4, station's choiceHistory on screen, or the fleet table listing neighbours
95–115Project block: brief re-read as a pair, six blanks filled, rung list drafted, D1 work per the brief, questions to the teacherThe frame and rung list exist on paper; D1 submitted or scheduled per the brief
115–120Evidence committed and pushed; bench packed, full kit travelsBoth boards home: studio weeks assume a running stack at each class

Evidence to hand in

  • The app: app.py and templates/dashboard.html, runnable, with whatever ladder rungs you reached.
  • Proof it serves the room: two screenshots in docs/, the dashboard on the laptop and on a phone, the live number visibly mid-dip in at least one (shade the sensor as you shoot).
  • The pair agreements in the repo README: boards, split, sync rhythm, per the project page.
  • The project frame: the six filled blanks and the ranked rung list, in docs/project-frame.md, the raw material D1's brief-governed submission draws on.
  • Journal entry in station.txt: which wall you hit (bind, firewall, bridge, reloader) and the failure signature that named it.
  • D1 itself: per the brief on Omnivox, its format and channel govern.

Exit ticket

Say or write, without notes:

  1. The full-circle path of one Set press, protocol by protocol, machine by machine.
  2. The two-patterns table's "who initiates / when / audience" rows, with the bench's own examples.
  3. Why the bridge dict exists, in one sentence containing the word "stateless".
  4. Your Pi's three open doors and the one-line justification for each.
  5. Your project's six blanks, from memory.

Before next Monday

  • D1 closes this week if it has not already: the brief's word on format and deadline governs; the questions log travels with it.
  • Skeleton work starts now. Next Monday is studio and D2 lands there: arrive with the walking skeleton attempted, so studio time goes to its hardest interface instead of its first.
  • Split and sync as agreed: the mid-week check-in you wrote in the README happens this week for the first time; make it real.

Next week: studio

Week 12 · Monday, November 23

Project studio

Supervised project work, the whole session: the stack is built, the teacher circulates, and the hour belongs to your hardest problem. D2 is due, the milestone the walking skeleton was aimed at, per the brief.

What you now have

The whole course, running

Sense, network, decide, act, show: every box of the Week 8 diagram filled, by you, on hardware you configured. From here to December the course adds no new fundamentals; it watches what you build on them.