An intelligent AI-powered academic planning system that transforms complex university course planning into an interactive, personalized experience for Penn State students.
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.
- 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
- Data Scraping: Python script scrapes Penn State bulletin
- ETL Processing: Transform raw HTML into structured JSON
- Vector Indexing: Convert text to embeddings and build FAISS index
- User Input: Student submits profile via React frontend
- AI Agent Activation: FastAPI backend processes request
- RAG Search: Parallel searches for requirements and academic plans
- AI Generation: Gemini AI synthesizes personalized plan
- Response Delivery: Interactive plan with course details
- React with Next.js
- Tailwind CSS for styling
- Axios for API communication
- React Markdown for rich text rendering
- FastAPI with Python
- Google Gemini AI for plan generation
- FAISS vector search
- Sentence Transformers for embeddings
- Penn State Undergraduate Bulletin (scraped)
- Vector embeddings for semantic search
- JSON datasets for courses, plans, and requirements
- Python 3.8+
- Node.js 16+
- Google Gemini API key
# 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# Navigate to frontend directory
cd courseflow
# Install dependencies
npm install
# Run the development server
npm run devCourseFlow/
├── 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
POST /api/generate-plan- Generate personalized academic planPOST /api/chat- Chat with AI academic advisorGET /api/course-info/{course_code}- Get course detailsGET /api/professor-ratings/{course_code}- Get professor ratings
- Generates 4-year roadmaps based on major, minor, and career preferences
- Accounts for completed courses and AP credits
- Provides semester-by-semester course recommendations
- Context-aware responses using student profile and academic plan
- Concise, actionable advice with markdown formatting
- Remembers conversation history for better assistance
- 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 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