Interactive Prerequisite Flowchart

Searchable website showing the prerequisites to any course at the U.

Chau Truong

Team Lead

Everett Quan

Team Lead

Chandan Sankar

Graph Developer

Kongmeng Thao

Design + Frontend

Trevor Marquez

Developer

Su Yeon Han

Developer

Overview

Classes can have prerequisites which are typically listed at the bottom of a course description page. However, this textual description can be confusing when registering for classes, and near-impossible to use when planning for graduation. Inspired by the Fall 2022 project Prerequisite Flowchart, which itself was inspired by the Department of Computer Science and Engineering's undergraduate prerequisite chart, Interactive Prerequisite Flowchart is a project that runs a website (Gopher Prerequisites) which makes all departments and courses searchable, displaying a chart of the relationship between all classes in a department or the prerequisites of a course.

Screenshot of Gopher Prerequisites

The prerequisite chart for the Dakota Language Program

Development

The website relies on publically available data provided by the Coursedog API, a new course catalog system adopted by the University of Minnesota in August 2023. From this API, department information and individual courses' information was scraped for the entire Twin Cities campus. The data is then assembled into JSON files which contain relevant information for displaying useful descriptions and building prerequisite charts.

Technologies

The website is a Next.js project which makes use of the Mermaid library to present department/course prerequisite charts. The Coursedog API was used to build caches of course information stored in the repository.

Challenges

Since the Coursedog API is not meant for public use, documentation was somewhat difficult to find and use. Additionally, the transition to Coursedog happened right before the start of the semester, rendering work from the original inspiring project obsolete. The project was built from scratch to fit the additional requirement of serving a website.

Choosing which charting/diagramming library to use was another issue that arose late into development as Mermaid presented various issues/limitations during its use. Mermaid was initially chosen due to its graphviz-like, text-based interface, which worked well to quickly format collected data into a string-based graph representation. However, to implement features such as dynamic user interaction, a more flexible library may be needed.

Future plans

Development is intended to continue into the Spring 2024 semester as many ideas were tabled, such as:

  • Selecting multiple classes to present in a single graph
  • Displaying what classes take a selected class as a prerequisite
  • Clickable graph nodes
  • A planning tool/integration with Graduation Planner