Skip to content

oceanusXXD/CourseLink

Repository files navigation

CourseLink

Intelligent Course Advisory System powered by RAG + LangGraph

License: GPL v3 Python Django

中文文档


Introduction

CourseLink is an AI-powered personalized course recommendation system designed for university students. By leveraging advanced RAG (Retrieval-Augmented Generation) technology, we transform the tedious manual handbook lookup process into an intelligent, efficient, and data-driven course selection experience.

Our goal is to help every student easily find the courses that best fit their needs — whether aiming for top grades, seeking easier credits, mastering practical skills, or planning an accelerated graduation path.

In short: Smart course selection without the hassle!


Key Features

  • Real-time Data: Periodically crawls official university websites to ensure course information accuracy and timeliness
  • Personalized Recommendations: Deeply understands your course selection intent — high GPA targets, workload preferences, practical skills, or summer term planning
  • Intelligent Chatbot: Built with LangGraph agent architecture, providing fast and accurate answers to your course-related questions via SSE streaming
  • Secure Account System: JWT authentication + optional third-party OAuth + AES-GCM end-to-end encryption
  • Browser Extension Integration: Chrome extension backend APIs for automated course planning and enrollment
  • RAG-Enhanced Search: Vector retrieval + optional reranking for precise course matching

Tech Stack

Layer Technologies
Backend Python 3.11+, Django 5.x, DRF, Uvicorn (ASGI)
Agent LangGraph, LangChain
Vector Search ChromaDB / FAISS
LLM Dashscope (Qwen series, default)
Database SQLite (dev) / MySQL (production)
Frontend React, Vite, TypeScript, Tailwind CSS
Crawler Python, Requests, BeautifulSoup
Extension Chrome Extension APIs (Manifest V3)

System Architecture

The project adopts a modular design ensuring high cohesion and low coupling.

Core Modules:

  • backend/chatbot/langgraph_agent/ - LangGraph Agent core logic (routing, RAG invocation, tool execution, answer generation)
  • backend/accounts/ - User authentication, license management, and encryption services
  • backend/crawler/ - Scripts for crawling course URLs, details, and graduation requirements
  • backend/RAG_database/ - Vector database construction and retrieval services
  • backend/extension/ - Chrome extension backend interfaces

Data Flow:

User Query → Django API → LangGraph Agent → Tool Router
                                              ↓
                              ┌───────────────┼───────────────┐
                              ↓               ↓               ↓
                         RAG Search    Knowledge Graph   Direct Answer
                              ↓               ↓               ↓
                              └───────────────┴───────────────┘
                                              ↓
                                    Response Generation → SSE Stream → User

Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 18+ (for frontend)
  • Chrome browser (for extension)

Option A: Local Development (SQLite, Recommended)

  1. Clone the repository
git clone https://github.com/oceanusXXD/CourseLink.git
cd CourseLink
  1. Configure environment variables
cp backend/.env.local.example backend/.env
# Edit backend/.env, at minimum set: DJANGO_SECRET_KEY
  1. One-click backend startup
# Windows
.\scripts\start_backend.bat

# macOS / Linux
chmod +x scripts/*.sh
./scripts/start_backend.sh
  1. Access the API
  • API: http://localhost:8000/api/
  • Admin: http://localhost:8000/admin/

Option B: Docker Compose (MySQL + Nginx)

cp backend/.env.example backend/.env
# Configure database credentials in backend/.env
docker compose up -d --build

Access: http://localhost/api/


Frontend Code

The frontend code is not open-sourced in this repository.

If you need access to the frontend code for academic research, learning purposes, or collaboration, please contact me:


Documentation

  • Environment Variables: document/ENV_CONFIG.md
  • API Documentation: document/API.md
  • Development Guide: document/DEVELOPMENT.md
  • Quick Start: QUICKSTART.md
  • Local Dev Guide: LOCAL_DEV_GUIDE.md

Roadmap

  • Basic data crawling from official handbook
  • Structured course database
  • Vector database for RAG retrieval
  • LangGraph-based chatbot
  • RAG integration with self-judging agent
  • User authentication system
  • SSE streaming output
  • Chrome extension (course planning & auto-enrollment)
  • React frontend refactoring
  • Advanced data crawling (course reviews, social media)
  • Semantic clustering for similar courses
  • Architecture upgrade (RPC optimization, SaaS/PaaS deployment)

Contributing

Contributions are welcome! Whether it's code, documentation, or suggestions.

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

Contact

If you have any questions, suggestions, or collaboration ideas, feel free to reach out:


License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.


Related Projects

Project URL
Backend (this repo) https://github.com/oceanusXXD/CourseLink
Frontend Not open-sourced yet. Please contact via email if needed.

About

Intelligent Course Advisory System | 智能选课助手 - RAG + LangGraph powered chatbot with personalized recommendations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors