Inspiration

It’s the most dreaded part of every college student’s semester — course registration. The classes you want are full, they’re all twenty minutes away from each other, and worst of all, you only hear about the good courses a week after add-drop closes. What’s a student to do? With courselrns, we can find you the best courses suited to your major and interests with just a few clicks.

What it does

courselrns is a full-stack project that takes in a user’s major and academic interests and uses a machine learning model to recommend classes from the Yale Course Catalog.

How we built it

Course recommendations are created with all-MiniLM-L6-v2 model, with vector cosine similarity search made seamless by IRIS InterSystems. We additionally used SQLAlchemy for data analysis. This was then connected to a Flask application for API management, as well as our front-end. This was built with Next.s, React, and Typescript.

Challenges we ran into

We originally wanted to connect our service to Canvas and build the recommendations from a user’s past and current classes. However, we weren’t able to get that set up; it turned out that students don’t have the right permissions for that kind of access. We had to reconfigure our plan to adapt to that challenge. We also had some issues working with Docker and spinning up a container to run our LLM.

Accomplishments that we're proud of

Is it cliché if we say “the whole thing”? We are so proud of our completed project and its potential applications for Yale students!

What we learned

We gained so much experience with full-stack development and production-level code. From front-end / back-end connections to managing version control cleanly, this was an experience that taught us what CS development looks like in the real world (when we’re not in our favorite class, CPSC 323).

What's next for courselrns

We have a few short-term changes in mind. We'd love to add the ability to select by semester (ex. Spring 2024 courses only), as well as a calendar feature using course schedule information. However, we won't stop there! In the future, we want to integrate with Canvas to add a user’s prior classes to the embeddings. We also want to make things fun with Spotify “daylist”-like names for individual schedules as well as adding shareable graphics for course recs.

Built With

Share this project:

Updates