Loading...

Media is loading
 

Degree

Bachelor of Science (Computer Science)

Department

Department of Computer Science

School

School of Mathematics and Computer Science (SMCS)

Advisor

Dr. Ahmed Akhtar, Assistant Professor, Department of Computer Science

Keywords

Examination Timetabling, Constraint Optimization, Metaheuristics, Simulated Annealing, Great Deluge, Hill Climbing, Academic Scheduling, Next.js, TypeScript, UniTime

Abstract

The Examination Timetabling Problem (ETP) is a highly constrained, NP-hard optimization problem faced by academic institutions worldwide. The challenge lies in assigning exams to a limited number of time periods and rooms while satisfying hard constraints, such as preventing student exam overlaps, and optimizing soft constraints, such as minimizing back-to-back exams and maximizing room utilization. While established systems like the Java-based UniTime offer powerful solvers, their integration into modern, lightweight web architectures remains difficult due to heavy deployment footprints and dated interfaces.This project introduces the IBA Exam Scheduler, a full-stack exam scheduling application built on Next.js, Prisma, and SQLite. Its core contribution is a native TypeScript implementation of an advanced exam scheduling engine inspired by UniTime. The solver employs a multi-phase optimization pipeline: a greedy Construction Phase using constraint-based sorting, followed by Hill Climbing for local optimization, and metaheuristics such as Simulated Annealing and Great Deluge for global optimization.Experimental results demonstrate that the solver schedules 100% of exams in test datasets without violating any hard constraints, with metaheuristic techniques outperforming pure local search. By wrapping this engine in a Next.js framework, academic administrators gain a seamless dashboard to configure parameters, upload datasets, trigger solver runs, examine diagnostics, and visualize generated timetables in real time. The system shows that modern web technologies can support sophisticated optimization workloads traditionally associated with standalone scheduling platforms, improving accessibility, maintainability, and usability.

Tools and Technologies Used

Next.js, React, TypeScript, Prisma ORM, SQLite, PostgreSQL, Tailwind CSS, Shadcn UI, Git, Visual Studio Code

Methodology

The system was developed using a layered architecture separating the presentation, application, data, and optimization layers, allowing each subsystem to evolve independently. The frontend was built with Next.js, React, Tailwind CSS, and Shadcn UI; a RESTful API layer coordinates requests, validates inputs, and triggers solver runs; Prisma ORM handles data access over SQLite and PostgreSQL; and a custom TypeScript engine performs the scheduling.

A relational schema was designed around the core entities like Academic Sessions, Examinations, Periods, Rooms, Distribution Constraints, and Solver Configuration , to represent institutional scheduling policies. Scheduling was modelled as a constraint optimization problem with hard constraints (no student exam overlaps, room capacity limits, valid period assignments) that must never be violated, and soft constraints (minimizing back-to-back exams, balancing daily load, improving room utilization) captured through weighted penalties.

The solver follows a multi-phase pipeline: a greedy Construction Phase generates an initial feasible timetable by scheduling the most difficult exams first; Hill Climbing then applies local search operators (period reassignment, room reassignment, exam swaps) to reduce penalties; and Simulated Annealing and Great Deluge metaheuristics perform global optimization to escape local optima.

The system was evaluated on a realistic university dataset through functional testing, unit testing of solver components, performance/convergence analysis, and manual inspection of generated timetables.

Document Type

Restricted Access

Submission Type

BSCS Final Year Project

Creative Commons License

Creative Commons Attribution 4.0 International License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Share

COinS