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.
Accomplishments that we're proud of
LEARNING LEARNING LEARNING. We all went into this ready to utilize new technologies even ones that we learned of at the opening ceremony (like Perplexity!) it was a great experience trying things over and over until it finally worked. We were able to successfully implement the various APIs in play, retrieve the relevant information from the web and successfully implement our front end and back end to make a full-stack web app.
What we learned
We learned that while you may be able to do some things in some languages fairly easily (cough cough python) 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, Beautiful Soup, and pandas were all new to the respective members whom utilized each for their role.
What's next for Hoo Wants A Degree?
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
- api
- axios
- beautiful-soup
- dotenv
- express.js
- node.js
- openai
- pandas
- papaparse
- perplexity
- perplexityapi
- python
- react
- requests
- rest


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