Inspiration

Course registration is one of the most stressful and frustrating experiences for students. At our university, students often struggle to enroll in their desired courses or professors due to limited seats, unclear strategies, and a lack of long-term planning.

The current system forces students to make critical decisions under uncertainty—without knowing how fast courses fill up, whether prerequisites are satisfied, or how their choices impact graduation requirements.

We were inspired to build a smarter system that empowers students to make informed, personalized, and strategic course selection decisions.


What It Does

Our project is an intelligent course planning assistant that helps students optimize their registration strategy.

It provides personalized course recommendations by combining:

  • Real-time seat availability and historical enrollment speed
  • Student major requirements and graduation constraints
  • Prerequisite validation
  • Preferences for teaching styles and professors

The system not only suggests courses but also evaluates their feasibility and risk level (e.g., likelihood of getting into a class), helping students plan both short-term registration and long-term academic progress.


How We Built It

We built a full-stack backend system using:

  • FastAPI for building scalable APIs
  • SQLAlchemy for database modeling and relationships
  • Pandas for processing real-world course data from Excel
  • A structured data model including students, courses, instructors, and course offerings

We integrated real course data (including seat availability, instructors, and sessions) and designed a recommendation engine that scores and ranks courses based on multiple factors such as availability, preference matching, and constraints.


Challenges We Ran Into

  • Messy real-world data: Course data from Excel required cleaning, normalization, and restructuring into relational tables
  • Database design: Mapping real-world course structures (course, instructor, offering) into a clean schema
  • Session mismatch issues: Ensuring consistency between imported data and API queries
  • Balancing recommendation logic: Combining multiple factors (availability, preference, requirements) into a meaningful scoring system

Accomplishments That We’re Proud Of

  • Successfully transformed raw university course data into a structured backend system
  • Built a working recommendation engine that adapts to user preferences and constraints
  • Enabled real-time querying and filtering of course offerings
  • Created a system that goes beyond simple search—toward intelligent decision support

What We Learned

  • How to design scalable backend systems with FastAPI and SQLAlchemy
  • The importance of data cleaning and normalization when working with real-world datasets
  • How to translate user needs into algorithmic decision-making
  • The complexity of building recommendation systems that balance multiple constraints

What’s Next

  • Integrate real-time course monitoring (e.g., tracking seat changes every minute)
  • Improve recommendation algorithms with machine learning and historical data
  • Add user feedback loops to learn student preferences over time
  • Build a front-end interface for better usability and visualization
  • Expand to full academic planning across multiple semesters

Built With

Share this project:

Updates