Scheduling with No Conflicts Tool

Languages/Frameworks: Python, Flask, BeautifulSoup, HTML, Javascript

Posted on August 30, 2020 · 1 min read

Overview

In this project, I took away the hassle of finding classes that have no timing conflicts. One simply plugs in the Drexel classes one wants to take, and the program makes a schedule based off the listed class times in Drexel's class database.

The Inner Workings

The first step was webscraping and parsing the Drexel course website (Drexel WebTMS) and turning that into a database. I grabbed the data using Python's BeautifulSoup, and then parsed it based off the patterns I found in the website.

The second step was developing an algorithm to make a schedule based off a student's request. I created a recursive algorithm that treats each class as a node in a tree and goes along a single branch of the tree until it finds a scheduling conflict. If it finds one, it goes back a layer in the tree and tries a different branch.

This process continues until a working schedule is found (or not found) and then either shows the user the schedule it put together, or why it was not able to.

For the web interface, I used Flask, HTML, Javascript, and Bootstrap.