Inspiration

I remember the first time I learned about schedule builders. Hours of effort, instantly done for you. but they have a few things that make them not-so-effortless to use. There are some filters, but they're all completely strict, with no "fuzzy matching" or anything of the sort. Additionally, there's no way to put any nuanced needs. You might hate both early mornings and late nights, but which one would you prioritize? What if you want gaps at a specific time, roughly, for a weekly appointment? Or for lunch, where the exact time doesn't matter as much?

And then the order they present you the potentially hundreds of permutations? Completely random and a pain to use.

What it does

CUInClass solves all of these issues by incorporating Gemini! You choose your courses, and prompt Gemini 3.1 Pro to rank all the schedules possible with your course selections. What's left is a beautiful, easy to use schedule builder that takes your nuanced and specific needs into account, giving you only the best first.

Disagree with a ranking? Gemini Flash provides key insights on every schedule, and will be sure to point out the factors you didn't consider!

How we built it

The app is built in NextJS and TypeScript. It works by gathering all the CU course data (currently for the upcoming fall term) from our MongoDB Atlas database. After the user searches and checks off their courses, they write a prompt for Gemini 3.1 Pro. All possible course permutations are calculated, and then given to Gemini to rank according to the prompt. This means the AI cannot hallucinate any schedules. At most, it can assign it a subjective ranking the user disagrees with.

Challenges we ran into

Getting the CU course data was a tedious hurdle that needed us to build a web scraper to get it! The Carleton API was not very nice to work with.

Initially, we intended to factor building locations into the calculation, and provide a nice little map of a daily journey that could use Gemini to factor in how much walking time a student would have, how fast it had to be, etc. We additionally wanted to use professor data integrated with RMP. Unfortunately, at this time, most courses do not have either of those decided yet! Additionally, the building information requires you to sign in to acquire.

Accomplishments that we're proud of

It works! Come test it out!

Share this project:

Updates