Inspiration
As university students, weve all faced the challenge of planning our academic journey. From analysing the handbook to scouring reddit for advice on what courses to pick next, it can be annoying and difficult to find courses that actually align with our interested and completed coursework. We were inspired to create a solution that leverages past course selection and an algorithm to reccomend future courses, making degree planning more personalised and simpler.
What it does
Reco is a smart course recommendation platform designed for university students. The website:
- Allows students to create an account and input their completed courses
- Analyses their academic history using a custom similarity algorithm
- Generates personalised course recommendations across three tiers (strong, moderate, and weak)
- Provides detailed course information including faculty, school, campus, and UOC (units of credit)
The recommendation algorithm considers multiple factors including school alignment, faculty similarity, career path, and course name relevance to suggest courses that naturally fit a student's academic path and interests.
How we built it
We used a full-stack JavaScript architecture:
Frontend:
- React with Vite for a fast, modern development experience
- Tailwind CSS for responsive, clean UI design
- JWT-based authentication with local storage persistence
Backend:
- Node.js with Express for RESTful API endpoints
- MongoDB with Mongoose for flexible data storage
- JWT for secure authentication
- bcrypt for password hashing
- Custom recommendation algorithm using Jaccard similarity for matching courses based on faculty, school, career, and course names
Data Integration:
- GraphQL integration with CSESoc's Hasura API to fetch comprehensive course data
Challenges we ran into
Algorithm Design: Creating an algorithm for recommendations that balanced multiple factors (school, faculty, career, course names) while still providing a level of personalisation that caters towards a students interest and passion.
PreRequisite Inclusion: Implementing course prerequisites into our algorithm as the provided API lacked that information for each course.
Accomplishments that we're proud of
Recommendation algorithm: Our custom algorithm successfully considers multiple dimensions of course similarity and provides tiered recommendations that genuinely help students discover relevant courses.
Smooth User Experience: The onboarding flow with autocomplete course search makes data entry intuitive and prevents errors.
Full-Stack Integration: Successfully integrated external GraphQL APIs, authentication, database operations, and a React frontend into a cohesive application.
Scalable Architecture: Built with clean separation of concerns, making it easy to add new features like filtering by faculty or exporting degree plans.
What we learned
- How to design and implement custom recommendation algorithms using similarity metrics
- Integrating external APIs (GraphQL/Hasura) into our backend workflow
- Best practices for JWT authentication and secure user session management
- Advanced React patterns including protected routes and authentication guards
What's next for Reco
Prerequisite check: Integrate prerequisite checking to ensure recommended courses are actually available to the student
Degree Progress Tracking: Add degree requirement tracking so students can see how recommended courses fit into their graduation plan and how much is left
Social Features: Allow students to share course plans and see what their peers are taking
AI-Enhancements: Use LLMs to generate personalised course descriptions that explain why each recommendation matches the student's interests
Built With
- express.js
- javascript
- mongodb
- react
- tailwind
Log in or sign up for Devpost to join the conversation.