All work
Full-stackInternal tool
Subject Allocation System
Assigns subjects to 50+ faculty across 6 departments, fairly and without clashes.

The problem
Every semester a department has to decide who teaches what, juggling preferences, workload limits and timetable clashes by hand in a spreadsheet.
What I built
- A fairness-first allocation engine: whoever has the lightest teaching load goes first, with preference match as the tiebreaker
- Hard constraints for availability, workload caps and no double-booking
- Full create, edit and delete with validation for faculty, subjects, sections and preferences
- JWT login with role-based access, on a layered Django REST backend with React dashboards
- Closed a real authorization gap and wrote the first automated tests for the allocation logic
Results
Test run: 9 subject offerings across 3 sections and 4 faculty
- conflicts
- 0conflicts
- teaching load split, the fairest possible
- 3/2/2/2teaching load split, the fairest possible
- faculty preferences matched
- 8 of 9faculty preferences matched