A personalized course recommendation system for CMU students with AI-powered chat assistance.
- Onboarding Survey: 5-question survey to understand student preferences, ambitions, and learning style
- Course Recommendations: Personalized course recommendations based on survey answers, displaying course codes, titles, units, and details
- AI Chat Assistant: Integration with Anthropic's Claude API to answer questions about courses, syllabus, and more
- Frontend: React 18
- Backend: Node.js with Express
- AI: Anthropic Claude API
- Styling: CSS3 with modern gradients and animations
- Node.js (v14 or higher)
- npm or yarn
- Anthropic API key (Get one here)
-
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
-
Set up environment variables:
Create a
.envfile in theserverdirectory:cd server cp .env.example .envEdit
server/.envand add your Anthropic API key:PORT=5000 ANTHROPIC_API_KEY=your_anthropic_api_key_here -
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
-
Access the application:
Open your browser and navigate to
http://localhost:3000
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
GET /api/courses- Get all available coursesPOST /api/recommendations- Submit survey answers and get recommendationsPOST /api/chat- Chat with AI about a specific courseGET /api/courses/:id- Get details of a specific course
- Complete the Survey: When you first visit the site, answer 5 questions about your preferences
- View Recommendations: Based on your answers, you'll see personalized course recommendations
- Explore Courses: Click on any course card to view details and chat with the AI assistant
- Ask Questions: Use the chat interface to ask about syllabus, prerequisites, or anything else about the course
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.
- 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)
ISC