January 15, 2024
  • java
  • design-patterns

UMD Course Graph

A Java backend that turns UMD's entire course catalog, including its free-text prerequisite rules, into a typed, queryable directed graph.

Role
Solo build
Timeline
Nov 2023 – Jan 2024
Stack
Java · Maven · JUnit
Outcome
Full UMD catalog as a typed graph

Overview

My first substantial project, and the backend for the UMD Course Web project. It pulls every course at the university from the umd.io API and builds a directed graph out of them (nodes are courses, edges are relationships like prerequisites) as the foundation for visualizing the whole catalog.

The interesting problem isn’t fetching the data. It’s that prerequisites arrive as free-text strings (“CMSC216 with a C or better, and permission of the department”), and a graph needs them as typed structure instead.

How it works

Result

69 commits and 23 Java files, with an architecture diagram and an honest known-issues list in the README. Looking back, the feature set is modest, but the instincts weren’t: layered structure, design patterns, and tests on a first project. It’s still the repo I’d hand someone who asks how I think about code structure.