UniPlans

A module planner for NUS students, which I built with my friend Yuchen. You tell it which modules you want to take, and it plans backwards from there, semester by semester, so the prerequisites line up.

What it does

You search for modules, mark the ones you want and the ones you've already done, and it generates a timetable that stays under a workload limit you set. After that you can drag modules around, and it warns you when something won't work, like a missing prerequisite or two exams on the same day. You can keep a few versions of your plan and share one as a link. Grades stay private when you share.

My part

I did most of the backend. The module data comes from NUSMods, and I put it into a graph database (Neo4j) so we could follow prerequisites backwards from the modules you want. Then I wrote the planning algorithm on top of that, and later reworked it so a generated plan never breaks a prerequisite or drops a module you asked for. NUS's prerequisite rules are messy, and the two of us spent a while getting them into a shape the planner could use.

Yuchen built most of the front end. On that side I did the Generate tab and the landing page, and I update the module data each semester.