Heinz Program Scheduler
Turns a two-week manual scheduling job for about 607 incoming CMU Heinz students into a guided, conflict-free one-click build.

RoleDeveloper for the school
When2026
EventDeveloper for the school
LinksWrite-up on request
01Problem
First-semester cores were built by hand.
The scheduling office spent about 30 minutes per student, then another week entering rosters into the S3 system.
02What I built
Hard rules, soft costs, paste-ready rosters.
DEVELOPER FOR THE SCHOOL · TEAM 10
AA scheduling engine with hard rules (no time or mini-semester conflicts, room capacity) and soft costs (balanced sections, 2+2 mini split, avoiding long days).
BHandling for course A-or-B choices, manual moves with lock/undo, S3 paste-ready rosters, and per-program advisor workbooks with email-out.
CA PII anonymizer and a synthetic-data generator, plus a Streamlit offline fallback and a CLI. Demos use synthetic data; the repo holds no student data.
03Result
607
Incoming Heinz students as the baseline of the job the office used to do by hand. No after number is stated.
04Stack
PythonNext.jsFirebaseStreamlit
05Gallery