Inspiration
Countless hours spent going through the U of A Course Catalog, trying to keep track of the maze of pre- and corequisites involved.
What it does
Allows the user to select a desired course and displays a visual tree outlining all its prerequisites, its prereqs' prereqs, and so on.
How we built it
Through blood sweat and tears.
(Coded primarily with HTML/JavaScript/CSS, deployed using GitHub Pages.)
Challenges we ran into
Attempting to obtain information from the catalog using web-scraping. The end data wasn't clean enough to be interpreted automatically, so we had to hardcode the courses available to electrical engineers.
Creating the algorithm to recursively traverse the course tree also proved extremely difficult, and we had to resolve a case of circular imports at some point.
The visual representation of the tree in a human-readable format took a very long time to implement. We started with a simple textual representation and then attempted a graphical visualization on a canvas element.
Accomplishments that we're proud of
- The tree traversal algorithm
- Web scraper for catalog
- Paragraph representation
- Left navbar search function
What we learned
- Web scraping with Selenium
- OOP in JavaScript
- Imports/exports between JavaScript modules
- Dynamic loading of page elements with JS
- Filtering content by search terms
What's next for Trojan Course
- Expanding scope to include more disciplines
- Improve UI
- Add functionality to toggle off certain branches
- Incorporate web scraper to automatically create the course objects
- Display multiple trees simultaneously and merge their shared prereqs
- Factor in time element of courses (not all courses are offered every semester)
- Automatic checklist to confirm degree requirements are being met
Log in or sign up for Devpost to join the conversation.