A RAG-powered AI advisor that helps students discover, compare, and improve academic projects using insights from past senior-year project data.
- AI-Powered Chat — Ask questions about project ideas, methodologies, and past trends using a conversational RAG pipeline
- Project Explorer — Browse and filter past senior projects by domain
- Domain Filtering — Filter insights by domains like AI/ML, Cybersecurity, IoT, Web Dev, and more
- Smart Retrieval — ChromaDB vector search retrieves the most relevant past projects for context
- Structured Advice — Get project ideas, common mistakes, improvement strategies, and key observations in an organized format
- Local LLM — Runs entirely offline using Ollama (Qwen2 model) — no API keys needed
| Layer | Technology |
|---|---|
| Frontend | React + Vite |
| Backend | FastAPI (Python) |
| Vector Store | ChromaDB |
| LLM | Ollama (Qwen2 0.5B) |
| RAG Framework | LangChain |
| Embeddings | ChromaDB Default (all-MiniLM-L6-v2) |
- Python 3.10+
- Node.js 18+
- Ollama installed and running with the
qwen2:0.5bmodel
git clone https://github.com/<your-username>/ProjectSage.git
cd ProjectSagecd backend
pip install -r requirements.txtpython ingest.pypython main.pyThe API will be available at http://localhost:8000.
cd frontend
npm install
npm run devThe app will be available at http://localhost:5173.
ollama run qwen2:0.5bProjectSage/
├── backend/
│ ├── main.py # FastAPI application
│ ├── rag_chain.py # LangChain RAG pipeline
│ ├── ingest.py # Data ingestion into ChromaDB
│ ├── seed_data.json # Sample academic project data
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Main application component
│ │ ├── components/
│ │ │ ├── ChatPanel.jsx # AI chat interface
│ │ │ ├── ProjectCard.jsx # Project display cards
│ │ │ └── DomainSelector.jsx # Domain filter sidebar
│ │ └── index.css # Global styles
│ ├── index.html
│ └── package.json
├── .gitignore
└── README.md
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
GET |
/domains |
List all unique project domains |
GET |
/projects |
List all projects (optional ?domain= filter) |
POST |
/chat |
Query the RAG pipeline with a question |
- Fork the repository
- Create your 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 open source and available under the MIT License.
Built with ❤️ for academic excellence