Sunsetting Vericlass

Aug 24th, 2023

If you’re reading this, you are likely wondering what happened to Vericlass and why it wasn’t updated until literally the last minute this summer.

For nearly three years I developed Vericlass as a course-finding tool for myself and anyone else who wanted to use it. When I was in college, the motivation for this work was obvious–I was the first and main user of the software. Any use to others was largely coincidental: I only advertised the site when I first launched it in summer 2020, and only then at the urging of my friends. After that, other folks were free to find it on their own.

And they did. I’ve been surprised and delighted by how many people have found the software useful for their course planning. I think the site’s (somewhat niche) popularity stems from its simplicity. It’s a single-page app with a plain Bootstrap interface and a backend that consists of “download a JSON file” and “store course selections in local storage.” Search is performed locally in JavaScript; the user experience involves some clicking and some typing. These design choices are explicit–Harvard students are smart and can figure out how to do some filtering on their own; they don’t necessarily want me to know what they’re looking for; and they want the results fast. After the initial data download, there is zero network latency and everything is visible in one of the two panes of the interface. It’s all there. Simple.

Maintaining the software has unfortunately been less simple than using it. I was not a good software engineer when I wrote the core code for Vericlass, at least not on the short timeline to which I was holding myself, and I was even worse at data engineering. At the time, there was no easy way to get course data from Harvard, so I wrote a Selenium scraper that takes forever to run (I have no idea if there’s a better source now). The interface was written in Vue at a time when Vue most appealed to me because it was in my view the most similar of the SPA frameworks to vanilla HTML, CSS, and JavaScript. Even with some minor upgrades – Dockerizing the scraper and running it in AWS automatically – there’s still a lot of inefficiency in the process to update the data. I could write a great roadmap for the project with knowledge gained from almost a year in industry, but actually implementing proper pipeline orchestration, AWS-based data hosting, infrastructure as code, and a complete rewrite of the frontend would take a great deal of my free time. Plus, I now get paid to do similar work full-time, and Vericlass was always just a passion project I spent my own money to run, so there’s no real incentive for me to continue it as an alum.

But, if you really find Vericlass useful, and you can’t stand for it to end, I have a proposal. If you know how to program, are an undergraduate at Harvard, and would like to maintain the software going forward, send me an email. I would be happy to onboard you to the existing codebase, and even help you write that aforementioned roadmap to overcome tech debt and maybe even write new features. Potentially, if you don’t want to improve it, the roadmap could just be “how to update relevant scraper configurations each semester.” If you’re worried about whether you have enough relevant experience, recall my description of myself in summer 2020: you, like I, will figure it out. If nobody volunteers, then fall 2023 will be the last semester for which I update the Vericlass data, and the project will be officially laid to rest.

Categories: projects