Final Thesis Project & Developer
University Timetable Solver
An intelligent scheduling system developed as my final thesis project that tackles the notoriously complex Curriculum-Based Course Timetabling problem using Answer-Set Programming.
Project Highlights
About The Project
The platform combines a powerful constraint-solving engine using Answer-Set Programming (ASP) with Clingo, wrapped in a user-friendly React interface. This tackles the notoriously complex Curriculum-Based Course Timetabling problem, a well-known NP-complete challenge in computer science.
Architected as a fully serverless solution on AWS using Lambda, DynamoDB, and S3, the system handles intricate university scheduling constraints from room capacities and teacher availability to course prerequisites and student preferences.
Core Capabilities
- → Automated timetable generation using constraint solving
- → Room capacity and availability management
- → Teacher scheduling and conflict resolution
- → Course prerequisites and dependencies handling
- → Student preferences and constraints optimization
Technical Features
- → Serverless architecture for scalability
- → Answer-Set Programming engine (Clingo)
- → Modern React-based user interface
- → Real-time constraint validation
- → Export and integration capabilities
Technology Stack
Technologies
- • Solver Engine: Python, Clingo (ASP)
- • Frontend: React, JavaScript
- • Backend: Python, AWS Lambda
- • Database: DynamoDB
- • Infrastructure: AWS (Lambda, S3, DynamoDB)
Problem Domain
Platform Demonstrations
Academic Contribution
This project served as my final thesis (TFG - Trabajo de Fin de Grado) at the University of Santiago de Compostela, exploring the practical application of Answer-Set Programming to real-world scheduling challenges.
The solving algorithm is open-source, contributing to academic research in automated scheduling and constraint satisfaction problems. The serverless architecture demonstrates how modern cloud technologies can be leveraged to solve computationally intensive problems efficiently.
By making the algorithm publicly available, this project supports further research and development in the field of automated timetabling systems.