Professor-Paaji is a prototype educational tool that takes in slide decks, groups slides with similar meaning into clusters, and provides topic explanations via the Gemini API.
It’s designed to help students and educators quickly understand key topics within large slide decks.
- Upload slides (
.pptx) - Text extraction from slides
- Semantic clustering of slides using SentenceTransformer + Agglomerative Clustering
- Interactive UI to explore slide clusters
- Topic explanations powered by Gemini API with slide context
| Component | Technology |
|---|---|
| Backend | FastAPI, SentenceTransformers, scikit-learn, Gemini API |
| Frontend | React (Vercel deployment) |
| Deployment | Vercel (frontend), GCP/VM (backend) |
ProfessorPaaji/
├── backend/ # FastAPI backend
│ ├── main.py # API entrypoint
│ ├── requirements.txt # Python dependencies
│ └── ...
├── slide-cluster-frontend/ # React frontend
│ ├── package.json # Frontend dependencies
│ └── ...
└── README.md
git clone https://github.com/Abhinav-VS21/ProfessorPaaji.git
cd ProfessorPaaji- Python
- Gemini API key
cd backend
pip install -r requirements.txtuvicorn main:app --reloadBackend will be live at:
http://127.0.0.1:8000
- Node.js 18+
cd slide-cluster-frontend
npm installnpm run devFrontend will be live at:
http://localhost:3000
Create a .env file in backend/ with your API keys:
GEMINI_API_KEY=your_api_key_here
Other configs:
- Clustering parameters (default: Agglomerative, cosine similarity)
- Embedding model (default:
all-MiniLM-L6-v2)
- Start backend + frontend.
- Upload a slide deck (
.pptx). - System extracts text and clusters slides into topics.
- Click a cluster to request explanation.
- Gemini API generates a contextual explanation with slide text.
- Support
.pdfslides - Export topic explanations as summary notes
- UI improvements
- More clustering options (k-means, spectral)
- Multi-language support