Intelligent Course Advisory System powered by RAG + LangGraph
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!
- 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
| 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) |
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 servicesbackend/crawler/- Scripts for crawling course URLs, details, and graduation requirementsbackend/RAG_database/- Vector database construction and retrieval servicesbackend/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
- Python 3.11+
- Node.js 18+ (for frontend)
- Chrome browser (for extension)
- Clone the repository
git clone https://github.com/oceanusXXD/CourseLink.git
cd CourseLink- Configure environment variables
cp backend/.env.local.example backend/.env
# Edit backend/.env, at minimum set: DJANGO_SECRET_KEY- One-click backend startup
# Windows
.\scripts\start_backend.bat
# macOS / Linux
chmod +x scripts/*.sh
./scripts/start_backend.sh- Access the API
- API:
http://localhost:8000/api/ - Admin:
http://localhost:8000/admin/
cp backend/.env.example backend/.env
# Configure database credentials in backend/.env
docker compose up -d --buildAccess: http://localhost/api/
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:
- Email: tao666918@gmail.com | z453676955@qq.com
- GitHub Issues: Feel free to open an issue
- 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
- 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)
Contributions are welcome! Whether it's code, documentation, or suggestions.
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you have any questions, suggestions, or collaboration ideas, feel free to reach out:
- Email: tao666918@gmail.com | z453676955@qq.com
- Or open an Issue on GitHub
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
| Project | URL |
|---|---|
| Backend (this repo) | https://github.com/oceanusXXD/CourseLink |
| Frontend | Not open-sourced yet. Please contact via email if needed. |