How rohanpudari/studymate works
StudyMate lets a user upload study notes, ask document-grounded questions with page citations, and generate a summary. The React UI calls FastAPI routes; backend handlers own PDF ingestion, retrieval, prompt construction, and model calls. The README documents the RAG components and debug search capability, while the sampled backend source confirms their orchestration. Those backend stages share one source file, so the graph distinguishes their responsibilities without implying separate modules.
Main entry points: App.jsx Study UI · main.py PDF upload · main.jsx React entry
Components 16
Study interface
- Study UI
frontend/src/App.jsx - React entry
frontend/src/main.jsx
API workflows
- FastAPI app
backend/main.py - PDF upload
backend/main.py - Question answering
backend/main.py - Document summary
backend/main.py - Chunk search
backend/main.py
Document processing
- PDF extraction
backend/main.py - Text chunking
backend/main.py - Text embeddings
backend/main.py - Similarity retrieval
backend/main.py - Prompt construction
backend/main.py
Local services
- Uploaded PDFs
backend/main.py - Chroma vectors
backend/main.py
Other components
- Student
- Ollama model
Connections 26
- Student → Study UI: uses
- React entry → Study UI: renders
- Study UI → PDF upload: uploads PDF
- Study UI → Question answering: asks question
- Study UI → Document summary: requests summary
- FastAPI app → PDF upload: dispatches
- FastAPI app → Question answering: dispatches
- FastAPI app → Document summary: dispatches
- FastAPI app → Chunk search: dispatches
- PDF upload → Uploaded PDFs: writes PDF
- PDF upload → PDF extraction: loads PDF
- PDF extraction → Text chunking: provides pages
- PDF upload → Text chunking: splits pages
- PDF upload → Chroma vectors: stores chunks
- Chroma vectors → Text embeddings: embeds chunks
- Question answering → Similarity retrieval: searches active file
- Chunk search → Similarity retrieval: searches all files
- Similarity retrieval → Chroma vectors: queries vectors
- Chroma vectors → Text embeddings: embeds query
- Question answering → Prompt construction: builds context prompt
- Question answering → Ollama model: invokes model
- Document summary → Chroma vectors: fetches active chunks
- Document summary → Ollama model: invokes model
- Question answering → Study UI: returns answer and citations
- Document summary → Study UI: returns summary
- Chunk search → Study UI: returns matching chunks