A web application that generates timetables for university students at the University of Toronto
The Uoft Timetable Generator aims to create the best university timetable for any UofT students. Equipped with the most accurate genetic algorithm, it can create the best timetables based on user's preferences such as setting a maximum time for the latest class, or having the smallest walking distance between classes.
The Uoft Timetable Generator project is a full stack web development project. It is comprised from several components: the Web Scrapper, SQL Database infrustructure, Data Models, Timetable Generator Library, Genetic Algorithm Analyzer, C# Web Api, and a Angular JS Front End Web Application.
This project consists of several components, each responsible for performing a certain task to get the best timetables. The image below illustrates the system architecture of the project.
Users will be using the front-end web application to generate their timetables. In the homepage, they will first have to specify the courses they will be taking.
Typing the first three letters of the course code in the search bar will reveal the relevant, available courses.
After selecting the courses, click on the "Generate Timetables" button. It will then call the server to generate the timetables, and navigate to the Timetables page. The generated timetables will be displayed in icons like the image below.
In addition, users can specify restrictions and preferences to tailor their timetables to their needs. It is done by clicking on the Preferences or Restrictions button on the top of the page. The preferences/restrictions panel will appear, revealing the options the users have. Applying their new restrictions/preferences will regenerate their timetables.
Users are able to view, print, and bookmark their favorite timetables by clicking on one of the generated timetable.
Please note that this project is used for educational purposes and is not intended to be used commercially. We are not liable for any damages/changes done by this project.
Emilio Kartono, who made the entire project.
This project is protected under the GNU licence. Please refer to the Licence.txt for more information.