Inspiration
During class registration season, UCLA students spend hours studying the course catalog, trying to find that one class that doesn’t conflict with their current schedule and actually aligns with their academic interests or career goals. The way that we schedule for our classes right now is honestly time-consuming, repetitive, and inefficient. Sometimes, we sign up for the wrong classes and almost mess up our entire quarter. After seeing many of our friends experience these challenges, we realized that we could use the AWS tools to automate the class search process. In our proposed app, students can enter their current schedule and what they're interested in learning about to find courses that fit based on how much they match with the student’s interests.
What it does
The app first parses through the student’s current schedule that they input in natural language. Then, after the student enters what they’re most interested in, it goes through the various classes available and filters them based on the user's schedule. The app uses the reasoning capabilities of Nova Pro to match the students’ interests to the classes that they are interested in the most. Ultimately, this gives the user a curated list of courses that are best fit for them, which they can use to register for courses immediately.
How we built it
We built Course Match, a personalized class recommendation system for UCLA students, using a combination of AWS AI services and Python. We leveraged Amazon Bedrock with the Nova Pro LLM model to understand inputted student interests and match them semantically with course descriptions to recommend courses. The system integrates AWS Lambda to filter the classes in the dataset based on availability. We also developed a Streamlit app for students to input their current courses and interests and find courses that match their interests, while fitting in with their current schedule.
Challenges we ran into
Although we started off smoothly, we quickly realized that we couldn’t access the API for UCLA’s course catalog because it required approval from the Registrar’s Office which would take multiple business days. This prevented us from using UCLA’s current courses directly. Thus, we created a mock dataset by taking courses that were offered in the past and compiled these into one categorized list. Another challenge we faced was that the agent was not finding all of the courses related to the student’s interests, especially those which were in traditionally different fields. To solve this, we experimented with various different sets of instructions for the Nova Pro model, seeing how it performed with each prompt. This allowed us to find the best set of instructions to give students the perfect course recommendations.
Accomplishments that we’re proud of
We are proud of building a tool that can improve college students’ experience in registering for classes as course registration is a difficult and stressful part of students’ college experiences. Furthermore, this was our first time using AWS for building an application, and we are excited that we used an industry tool to solve real world problems.
What we learned
We learned how to use Streamlit to develop an interactive demo application for Course Match. This allowed us to quickly prototype and visualize our AI model’s recommendations in a user-friendly web interface. Due to Streamlit’s simplicity and its seamless integration with our AI agent, we plan to continue using it for future demonstrations and experiments. Additionally, we gained experience with AWS to deploy and manage LLM-based agents capable of interpreting data from various files.
What’s next for Course Match
At the moment, the web app runs on mock UCLA course data. To access the real data, we need approval from the Registrar's Office to either use UCLA’s API or build a web scraper to scrape data from the school course catalog. Moreover, we could incorporate professor reviews from BruinWalk or RateMyProfessor into the ranking of suggested classes to give students more insight into which classes may be better suited for them. We also plan to allow students to upload their transcripts or course schedules to make it easier for them to input their classes. Finally, we plan to scale this app to help students outside of UCLA, since every student deserves to take the classes that match their interests.
Built With
- amazon-web-services
- bedrock
- css
- lambda
- python
- streamlit
Log in or sign up for Devpost to join the conversation.