Skip to content

drathis1/Course-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carnegie Mellon University Course Recommendation System

A personalized course recommendation system for CMU students with AI-powered chat assistance.

Features

  1. Onboarding Survey: 5-question survey to understand student preferences, ambitions, and learning style
  2. Course Recommendations: Personalized course recommendations based on survey answers, displaying course codes, titles, units, and details
  3. AI Chat Assistant: Integration with Anthropic's Claude API to answer questions about courses, syllabus, and more

Tech Stack

  • Frontend: React 18
  • Backend: Node.js with Express
  • AI: Anthropic Claude API
  • Styling: CSS3 with modern gradients and animations

Setup Instructions

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • Anthropic API key (Get one here)

Installation

  1. Install dependencies for all projects:

    First, install root dependencies:

    npm install

    Then install server and client dependencies:

    npm run install-all

    Or install manually:

    npm install
    cd server && npm install
    cd ../client && npm install
  2. Set up environment variables:

    Create a .env file in the server directory:

    cd server
    cp .env.example .env

    Edit server/.env and add your Anthropic API key:

    PORT=5000
    ANTHROPIC_API_KEY=your_anthropic_api_key_here
    
  3. Start the development servers:

    From the root directory:

    npm run dev

    This will start both the backend server (port 5000) and the React frontend (port 3000).

    Or start them separately:

    # Terminal 1 - Backend
    npm run server
    
    # Terminal 2 - Frontend
    npm run client
  4. Access the application:

    Open your browser and navigate to http://localhost:3000

Project Structure

Course_rec/
├── client/                 # React frontend
│   ├── public/
│   ├── src/
│   │   ├── components/
│   │   │   ├── OnboardingSurvey.js
│   │   │   ├── CourseRecommendations.js
│   │   │   └── ChatInterface.js
│   │   ├── App.js
│   │   └── index.js
│   └── package.json
├── server/                 # Express backend
│   ├── data/
│   │   └── courses.js     # Course data
│   ├── index.js           # Server entry point
│   └── package.json
├── package.json
└── README.md

API Endpoints

  • GET /api/courses - Get all available courses
  • POST /api/recommendations - Submit survey answers and get recommendations
  • POST /api/chat - Chat with AI about a specific course
  • GET /api/courses/:id - Get details of a specific course

Usage

  1. Complete the Survey: When you first visit the site, answer 5 questions about your preferences
  2. View Recommendations: Based on your answers, you'll see personalized course recommendations
  3. Explore Courses: Click on any course card to view details and chat with the AI assistant
  4. Ask Questions: Use the chat interface to ask about syllabus, prerequisites, or anything else about the course

Course Data

The system includes sample CMU courses across various departments:

  • Computer Science
  • Machine Learning
  • Engineering
  • Business
  • Design

You can modify server/data/courses.js to add or update courses.

Notes

  • Make sure your Anthropic API key is valid and has sufficient credits
  • The recommendation algorithm uses a scoring system based on survey answers
  • All course data is currently stored in-memory (consider using a database for production)

License

ISC

About

Course Recommendation System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published