Inspiration
We have all had that experience of opening the course list for our respective majors and being overwhelmed by the sheer number of possibilities now open to us. Additionally, we have all heard the stories of how college advisors don't necessarily help a whole lot (with all due respect, of course, we do appreciate your work!), so I and many of my friends have spent hours creating our ideal 4-year course plans without necessarily knowing if it is "right". "Hoo Wants A Degree" aims at making this process easier or really complete at the click of a button.
What it does
"Hoo Wants a Degree" allows users to input their major, professional interests, year, semesters left (or anticipated), courses taken so far, personal interests (for general education classes), and target credits per semester. It then takes this information and utilizes the Perplexity AI API to produce a PDF degree plan that can be emailed straight to your inbox! (we do not store this information in any database for privacy reasons).
How we built it
We built the front end of the website using React.js and CSS. We implemented the Perplexity API using Python and got the information we used using Python and JavaScript. We trained the AI based on information from SIS, UVA Engineering and Lou's List. We created a web-scraping program in Python to aggregate course information from Lou's list which was stored in a pandas DataFrame, and appended to a .csv file. The backend then uses the fields filled out by the user to create a specific query to the perplexity API in order to generate the course lists.
Challenges we ran into
The biggest challenge was retrieving sufficient information to train the Perplexity AI effectively. In the beginning, when we attempted to use web-based information it was repeating courses, giving wrong orders and even forgetting some key major requirements entirely. Much of our time was spent learning how to scrape the various UVA informational sites and collecting them in a format the AI could parse through. Another challenge we faced was connecting our backend code with our frontend which required us to get creative, to say the least.
What we learned
We learned that while you may be able to do some things in some languages fairly easily it's not enough for a fully functional app. We learned a lot about the software engineering timeline, version control, and full stack development as most of our group are first years. In terms of technologies node.js, react, Perplexity, and Beautiful Soup were all new to the respective members who utilized each for their role.
What's next for HooWantsADegree!
For the purpose of the hackathon, we limited our scope to UVA engineering. With more time we would increase our scope to all majors and schools at UVA, and eventually every school in the country. We would also optimize the dataset in which we trained the AI to give more accurate/streamlined plans, professor suggestions, and scheduling for the upcoming semester!
Built With
- beautiful-soup
- node.js
- openai
- perplexityai
- python
- react.js

Log in or sign up for Devpost to join the conversation.