How roshini-nawanjala/studymate-ai works
StudyMate AI turns uploaded lecture PDFs into searchable study material, then supports summarization, grounded question answering, quizzes, and personalized reflection. The main workflow runs from Streamlit upload through PDF extraction, chunking, embedding, and persistent vector storage; learning pages use those notes to generate or assess responses. Quiz results travel to reflection through a structured message persisted in session state. The graph follows sampled service and provider calls; several page-to-service connections and capabilities are based on the README because their page implementations were not sampled.
Main entry points: app.py Home and navigation · ai_provider.py Task-based routing · document_service.py Document processing · vector_store.py Vector store
Components 21
Learning interface
- Home and navigation
app.py - Upload page
pages/Upload.py - Summary page
pages/Summary.py - Ask AI page
pages/Ask_AI.py - Quiz page
pages/Quiz.py - Reflection page
pages/Reflection.py
Document and retrieval
- Document processing
services/document_service.py - PDF extraction
utils/file_loader.py - Text chunking
rag/chunker.py - Embedding model
rag/embeddings.py - Vector store
rag/vector_store.py
Learning services
- Summary generation
services/summary_service.py - Grounded Q&A
services/chat_service.py - Quiz and review
services/quiz_service.py - Learning reflection
services/reflection_service.py
Agents and providers
- Task-based routing
agents/ai_provider.py - Quiz result protocol
agents/messages.py - Streamlit session state
pages/Quiz.py
Other components
- Student
- Groq
- OpenRouter
Connections 30
- Student → Home and navigation: opens
- Home and navigation → Upload page: navigates
- Home and navigation → Summary page: navigates
- Home and navigation → Ask AI page: navigates
- Home and navigation → Quiz page: navigates
- Home and navigation → Reflection page: navigates
- Student → Upload page: uploads PDF
- Upload page → Document processing: processes upload
- Document processing → PDF extraction: extracts text
- Document processing → Text chunking: splits text
- Document processing → Embedding model: encodes chunks
- Document processing → Vector store: stores chunks
- Summary page → Summary generation: requests summary
- Summary generation → Vector store: reads notes
- Summary generation → Task-based routing: requests model
- Ask AI page → Grounded Q&A: asks question
- Grounded Q&A → Vector store: searches notes
- Grounded Q&A → Task-based routing: requests model
- Quiz page → Quiz and review: generates and submits
- Quiz and review → Vector store: reads notes
- Quiz and review → Task-based routing: requests model
- Quiz and review → Quiz result protocol: builds result
- Quiz page → Streamlit session state: persists result
- Streamlit session state → Reflection page: provides result
- Reflection page → Learning reflection: requests reflection
- Learning reflection → Quiz result protocol: reads result
- Learning reflection → Vector store: reads notes
- Learning reflection → Task-based routing: requests model
- Task-based routing → Groq: routes tasks
- Task-based routing → OpenRouter: routes tasks