WebAutomation

Timetable Automation

A Python web application that automates academic timetable scheduling for educational institutions, handling constraint satisfaction across classes, instructors, and room availability. It replaces weeks of manual scheduling with minutes of automated generation.

The Problem

Academic timetable scheduling is an NP-hard constraint satisfaction problem that administrators solve manually each semester, taking weeks and producing schedules riddled with soft-constraint violations (back-to-back classes for instructors, room double-bookings, uneven load distribution). Manual errors cause cascading disruptions at the start of each term.

The Solution

A constraint satisfaction engine that models hard constraints (no room double-booking, no instructor conflicts) and soft constraints (preferred time slots, instructor workload balance) as a CSP and solves it using backtracking with forward checking and arc consistency. A React frontend lets administrators configure constraints, visualize the generated timetable, and export it.

Key Features

Constraint satisfaction solver for hard and soft scheduling constraints
Handles classes, instructors, and room availability simultaneously
Conflict detection and resolution with explanations
RESTful API for programmatic timetable generation
React frontend with visual timetable grid
Export to CSV, PDF, and iCalendar formats
Soft constraint weighting for instructor preferences
Multi-department support

Challenges & Learnings

Real institutional datasets have subtle constraint dependencies (e.g., a lab course requires a specific room and a specific lab technician on the same slot) that simple CSP models miss. Constraint normalization — expressing all dependencies as first-class constraint objects rather than special-case conditionals — was key to making the solver generalizable.

Business Impact

Reduces semester-start scheduling from weeks to minutes. Eliminates double-bookings and instructor conflicts. Saves administrative staff 40+ hours per academic cycle and reduces student complaints about scheduling conflicts.

Future Direction

Integration with student course registration data for demand-aware scheduling, multi-objective optimization for simultaneous hard-constraint satisfaction and soft-constraint maximization, and real-time conflict resolution UI.

Tech Stack

PythonFlaskReactConstraint SatisfactionPostgreSQLREST API

Quick Links

Want to see more of my work?

Back to Projects