CLASSTR.HEROKU.COM this isn't recognized as a valid link in the form. which is why it's here .
Inspiration
When registering for classes, if you don't follow the prescribed path (because you take a minor, retake a class etc). So Andrew developed a complicated tech tree of classes (think Civilization V) with the classes that can be taken next semester all in one tier, and the more prereqs something has, the further away it is. This took about 40 hours to put together, and needs to be manually updated every semester. Academic advisors love it, and have asked for PDFs of his (very unique) class tree.
What it does
This creates a live, updateable tech tree for classes (currently placeholder data) and let's you organize your semester based on what you need to take based on what you need to do, not a non-existant ideal student.
If you need math 307 to unlock EGRE 355 to unlock senior design, this will show you so you know what to take next.
How I built it
We made a node.js web server on top of heroku. Then a github repository (github.com/excenter/classtr2) with webhooks into jenkins checks fundamental code against some defaults at every commit. Each commit also triggers a heroku build and deploy. Then a platform agnostic webkit web page (changed to work with the node web server) is rendered around a D3 data visualization of a tech tree. CI/CD is automated and emails any failures.
Challenges I ran into
The D3 view is very finicky to get running, and currently there are a few bugs including scroll jacking on mobile making it rare to be visible in mobile safari or mobile chrome. creating webhooks with Jenkins is a multi step delicate process. a Node web server doesn't render web pages like a good ol' fashioned distributed linux hosting.
Accomplishments that I'm proud of
rolled our own custom node web host.
What I learned
We learned Node, roll it yourself web servers, heroku, and D3.js
What's next for classtr
integrating the actual course trees for engineering majors, and the most popular minors at VCU, (extensable to any college, or dynamic tech tree related hierarchical view), fix scrolljacking on mobile, make the tree graphics more user friendly. include a preloaded course tree (search bar where you can enter a single class, or a minor and all the classes are added to the tree).
Log in or sign up for Devpost to join the conversation.