Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🧠 ProjectSage — Academic Project Intelligence AI

A RAG-powered AI advisor that helps students discover, compare, and improve academic projects using insights from past senior-year project data.

FastAPI React Vite ChromaDB LangChain Ollama


Features

  • 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

Tech Stack

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)

🚀 Getting Started

Prerequisites

  • Python 3.10+
  • Node.js 18+
  • Ollama installed and running with the qwen2:0.5b model

1. Clone the Repository

git clone https://github.com/<your-username>/ProjectSage.git
cd ProjectSage

2. Backend Setup

cd backend
pip install -r requirements.txt

Ingest seed data into ChromaDB:

python ingest.py

Start the API server:

python main.py

The API will be available at http://localhost:8000.

3. Frontend Setup

cd frontend
npm install
npm run dev

The app will be available at http://localhost:5173.

4. Ensure Ollama is Running

ollama run qwen2:0.5b

Project Structure

ProjectSage/
├── 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

📡 API Endpoints

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

Contributing

  1. Fork the repository
  2. Create your 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 open source and available under the MIT License.


Built with ❤️ for academic excellence

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages