Prerequisite Flowchart

A flowchart designer to help students vizualize their coursework as they complete their degree requirements.

Ritik Mishra

Lead Developer

Joey Mcindoo

Developer

Everett Quan

Developer

Josh Subhan

Developer

Kanishk Kacholia

Developer

Overview

For many students planning out a schedule can be quite a hassle. Oftentimes, finding the right combination of courses without any conflicts now or in future semesters can be difficult to manage. This can be especially true for students who are trying to complete a double major or minor. The Prerequisite Flowchart is a tool that allows students to visualize their coursework as they complete their degree requirements. At its core, this tool parses degree requirements from the University of Minnesota's OneStop and displays them in a flowchart format.

Prerequisite Flowchart

An example of a generated flowchart, different colors show different paths with dotted lines showcasing requirements with choices.

Development

This project is split into two parts: the frontend and the backend. The focus of the frontend team was to generate a vizualization that was easy to read with arrows, colors, and course placement in such a way that it would be easy to understand. The backend team focused on parsing the data from the University of Minnesota's OneStop and generating a data structure that could be used by the frontend team to generate the flowchart.

Frontend

The frontend team used GraphViz to generate the flowchart. A majority of the work focused around preventing similar looking colored lines from overlapping and minimizing the number of lines that overlapped. Moreover, the team also worked slightly on optimization to reduce the time taken to generate the flowchart.

Backend

The backend team utilized python in order to retrieve data from the University of Minnesota's catalog through Onestop or Classinfo. The team discovered that the prerequisites for each course were not stored in any consistent format, this largely stemmed from the fact that each department had their own way of storing prerequisites. To solve this issue, the team developed a plethora of regular expressions designed to try and parse the prerequisites from the course description. While this was not a perfect solution, it was able to parse a majority of the courses.

Outcome

Overall, this project worked out well. The application is capable of generating flowcharts for a majority of programs offered at the University of Minnesota. Both the frontend and backend teams were able to work together to create a tool that is easy to use and understand. However, there are still opportunities for improvement by potentially using a natural language processing library to parse the prerequisites from the course description. Moreover, the team was also interested in potentially making this graph more interactive with the user.