John Holbrook


EECS Advising Tool

This was a senior capstone project, which I completed as part of a team of 4 senior CS students. The brief was to write a cross-platform desktop app to improve the quality of faculty advising and course suggestion by analyzing a student's current progress, courses available next semester, and other factors.

Summary view (mouse over for dark mode)

The app took data in from PDF copies of student degree audit reports and stored it in a local database. This was kind of a pain to implement, but pretty much the only way we could get ahold of this data. Information about courses and course offerings is scraped from the university course offerings webpage and cached locally as needed.

The app was written using Electron, which we chose because the brief required us to write a cross-platform desktop app and because several of us had some pre-existing Javascript/web development experience.

I mostly worked on the summary view (shown above), the primary aim of which was to display requirements that the student had not yet completed, and suggest upcoming courses that could be taken to further those requirements. I also wrote most of the code to scrape and cache upcoming course offerings from the university website.

Another cool feature of the app (not written by me) was the "class graph" view, which showed a graph of all the required and optional courses for a degree program, with each class color-coded based on the student's particular status with respect to that class (passed, failed, prerequisites met, prerequisites not met, etc.)

Class graph view (mouse over for dark mode)

Unfortunately, this app was not publically released or open-sourced, so there's nothing for me to link to at the bottom of this page ☹️.