Skip to content

Prakhar6/CourseFlow-V2

Repository files navigation

CourseFlow - AI Academic Advisor

An intelligent AI-powered academic planning system that transforms complex university course planning into an interactive, personalized experience for Penn State students.

🎯 Overview

CourseFlow leverages Retrieval-Augmented Generation (RAG) to provide students with personalized 4-year academic roadmaps, real-time academic advising, and comprehensive course information including professor ratings.

✨ Key Features

  • Personalized Academic Planning: AI-generated 4-year roadmaps based on student profiles
  • Real-time Academic Advisor: Context-aware chatbot for instant academic guidance
  • Course Intelligence: Professor ratings and detailed course information
  • Smart Recommendations: RAG-powered accuracy using official Penn State data
  • Interactive Exploration: Clickable course details and dynamic plan adjustments

🏗️ System Architecture

Phase 1: Data Pipeline (One-Time Setup)

  1. Data Scraping: Python script scrapes Penn State bulletin
  2. ETL Processing: Transform raw HTML into structured JSON
  3. Vector Indexing: Convert text to embeddings and build FAISS index

Phase 2: Live User Workflow

  1. User Input: Student submits profile via React frontend
  2. AI Agent Activation: FastAPI backend processes request
  3. RAG Search: Parallel searches for requirements and academic plans
  4. AI Generation: Gemini AI synthesizes personalized plan
  5. Response Delivery: Interactive plan with course details

🛠️ Technology Stack

Frontend

  • React with Next.js
  • Tailwind CSS for styling
  • Axios for API communication
  • React Markdown for rich text rendering

Backend

  • FastAPI with Python
  • Google Gemini AI for plan generation
  • FAISS vector search
  • Sentence Transformers for embeddings

Data

  • Penn State Undergraduate Bulletin (scraped)
  • Vector embeddings for semantic search
  • JSON datasets for courses, plans, and requirements

🚀 Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • Google Gemini API key

Backend Setup

# Install Python dependencies
pip install -r requirements.txt

# Set up environment variables
cp .env.example .env
# Add your GEMINI_API_KEY to .env

# Run the backend
python main.py

Frontend Setup

# Navigate to frontend directory
cd courseflow

# Install dependencies
npm install

# Run the development server
npm run dev

📁 Project Structure

CourseFlow/
├── main.py                 # FastAPI backend server
├── etl.py                  # Data extraction and transformation
├── create_index.py         # FAISS vector index creation
├── requirements.txt        # Python dependencies
├── data/                   # Data files and vector index
│   ├── psu_courses.json
│   ├── psu_engineering_academic_plans.json
│   └── faiss_index.bin
└── courseflow/             # Next.js frontend
    ├── app/
    │   ├── page.tsx        # Main application component
    │   ├── layout.tsx      # App layout
    │   └── globals.css     # Global styles
    ├── package.json
    └── next.config.ts

🔧 API Endpoints

  • POST /api/generate-plan - Generate personalized academic plan
  • POST /api/chat - Chat with AI academic advisor
  • GET /api/course-info/{course_code} - Get course details
  • GET /api/professor-ratings/{course_code} - Get professor ratings

🎨 Features in Detail

Academic Planning

  • Generates 4-year roadmaps based on major, minor, and career preferences
  • Accounts for completed courses and AP credits
  • Provides semester-by-semester course recommendations

AI Chatbot

  • Context-aware responses using student profile and academic plan
  • Concise, actionable advice with markdown formatting
  • Remembers conversation history for better assistance

Professor Ratings

  • Real Penn State professor data from Rate My Professors
  • Shows ratings, difficulty, and "would take again" percentages
  • Hover tooltips on course codes for instant access

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Penn State University for academic data
  • Google Gemini for AI capabilities
  • Rate My Professors for professor rating data
  • The open-source community for various libraries and tools

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages