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 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.