All Projects → EKarton → UofT-Timetable-Generator

EKarton / UofT-Timetable-Generator

Licence: AGPL-3.0 license
A web application that generates timetables for university students at the University of Toronto

Programming Languages

C#
18002 projects
javascript
184084 projects - #8 most used programming language
powershell
5483 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to UofT-Timetable-Generator

GeneticAlgorithmUniversityClassScheduler
A class scheduler using adaptive-elitist genetic algorithm.
Stars: ✭ 98 (+188.24%)
Mutual labels:  genetic-algorithm, timetable-generator
Pysr
Simple, fast, and parallelized symbolic regression in Python/Julia via regularized evolution and simulated annealing
Stars: ✭ 213 (+526.47%)
Mutual labels:  genetic-algorithm
Evolutionary.jl
Evolutionary & genetic algorithms for Julia
Stars: ✭ 142 (+317.65%)
Mutual labels:  genetic-algorithm
Evolutionary Computation Course
Jupyter/IPython notebooks about evolutionary computation.
Stars: ✭ 173 (+408.82%)
Mutual labels:  genetic-algorithm
Mlkit
A simple machine learning framework written in Swift 🤖
Stars: ✭ 144 (+323.53%)
Mutual labels:  genetic-algorithm
Scikit Opt
Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differential Evolution and TSP(Traveling salesman)
Stars: ✭ 2,791 (+8108.82%)
Mutual labels:  genetic-algorithm
Genetic Algorithm
遗传算法 - Matlab
Stars: ✭ 136 (+300%)
Mutual labels:  genetic-algorithm
Py Ga Vrptw
A Python Implementation of a Genetic Algorithm-based Solution to Vehicle Routing Problem with Time Windows
Stars: ✭ 246 (+623.53%)
Mutual labels:  genetic-algorithm
Aimandshoot
A neuroevolution game experiment.
Stars: ✭ 201 (+491.18%)
Mutual labels:  genetic-algorithm
Galgo 2.0
Genetic Algorithm in C++ with template metaprogramming and abstraction for constrained optimization
Stars: ✭ 155 (+355.88%)
Mutual labels:  genetic-algorithm
Eiten
Statistical and Algorithmic Investing Strategies for Everyone
Stars: ✭ 2,197 (+6361.76%)
Mutual labels:  genetic-algorithm
Bluepyopt
Blue Brain Python Optimisation Library
Stars: ✭ 143 (+320.59%)
Mutual labels:  genetic-algorithm
Genetic Cnn
CNN architecture exploration using Genetic Algorithm
Stars: ✭ 183 (+438.24%)
Mutual labels:  genetic-algorithm
Evolutionsimulator
Evolution Simulator with Box2D
Stars: ✭ 143 (+320.59%)
Mutual labels:  genetic-algorithm
Neural Network P5
Deprecated! See:
Stars: ✭ 218 (+541.18%)
Mutual labels:  genetic-algorithm
Ai plays snake
AI trained using Genetic Algorithm and Deep Learning to play the game of snake
Stars: ✭ 137 (+302.94%)
Mutual labels:  genetic-algorithm
Featureselectionga
Feature Selection using Genetic Algorithm (DEAP Framework)
Stars: ✭ 150 (+341.18%)
Mutual labels:  genetic-algorithm
Classic Pool Game
Classic 8 Ball pool game written in JavaScript
Stars: ✭ 177 (+420.59%)
Mutual labels:  genetic-algorithm
Ml Games
Machine learning games. Use combination of genetic algorithms and neural networks to control the behaviour of in-game objects.
Stars: ✭ 247 (+626.47%)
Mutual labels:  genetic-algorithm
Circle Evolution
Evolutionary Art Using Circles in Python
Stars: ✭ 237 (+597.06%)
Mutual labels:  genetic-algorithm

UofT Timetable Generator

Description

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.

Table of Contents

  • Walkthrough
  • Installation
  • Usage
  • Credits
  • License

Walkthrough of this project

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.

Installation

Required Programs and Tools:
  • MS SQL Server on a machine (optional: SQL Server Management Studio)
  • Visual Studio
Set up the database
  • Install MS SQL Server on a machine
  • Set up a new database to store the UofT data
  • Open up the UofT Database project properties in Visual Studio, edit the connection string such that it links to your newly created database
  • Select the Create new database setting in the Build settings of the UofT Database project properties (so that it creates the relational database structure in your new database).
  • Run the UofT Database project by setting it as a startup project and pressing F5.
Set up the web scrapper and get the latest UofT data:
  • Ensure that the project Web Scrapper have the latest nuget packages:
    • HTML Agility Pack
    • Selenium Webdriver
    • Selenium Support
  • Ensure that the chrome driver (chromedriver.exe) is copied to the output directory, under the folder: Selenium/Web drivers
  • Edit the connection string of the UofT.dbml file so that any updates/deletions to the database will be made to your database.
  • Run it by selecting the project Web Scrapper as the start-up project, and run it. NOTE: It takes a while to scrape the data from the web.
Set up the Data Models project
  • Change the connection string in the UofT.dbml file to your database.
  • Build the project by setting it as a start-up project and pressing F5.
Running the Web Api and the Angular JS app on the local machine
  • Open up the Solutions Explorer in Visual Studio.
  • Right-click on the solution and select Properties.
  • Configure the start-up project so that it will run both the Web Api and the Webpage project.
  • Save the changes.
  • Finally, run the projects by pressing F5. Two webpages should appear: the webpage from the Web Api and the webpage to the front-end application.

Usage

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.

Credits

Emilio Kartono, who made the entire project.

License

This project is protected under the GNU licence. Please refer to the Licence.txt for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].