How dharshan-gangadhar/student-help-desk works
Student Helpdesk is a RAG-powered university policy assistant. Administrators upload PDF/TXT knowledge through the frontend; the backend extracts and chunks it, then embeds the chunks into an in-memory vector store. Students submit questions through the same interface; the backend retrieves similar chunks and asks Gemini to generate a grounded response. Source excerpts show the routes, security middleware, and RAG implementation; the frontend upload/chat requests and README document the user-facing capabilities.
Main entry points: server.js API Server · page.tsx Upload and Chat UI · upload.js Upload Route · ragService.js Chunk Embedding
Components 12
Student Interface
- Upload and Chat UI
frontend/app/page.tsx
Backend API
- API Server
backend/server.js - Rate Limiting
backend/server.js
Knowledge Ingestion
- Upload Route
backend/routes/upload.js - File Extraction and Chunking
backend/routes/upload.js - Chunk Embedding
backend/services/ragService.js
RAG Answering
- Chat Route
backend/routes/chat.js - Question Retrieval and Answering
backend/services/ragService.js - In-Memory Vector Store
backend/services/ragService.js
Other components
- Administrator
- Student
- Google Gemini API
Connections 15
- Administrator → Upload and Chat UI: uploads document
- Student → Upload and Chat UI: asks question
- Upload and Chat UI → API Server: sends API requests
- API Server → Rate Limiting: limits requests
- API Server → Upload Route: dispatches upload
- API Server → Chat Route: dispatches chat
- Upload Route → File Extraction and Chunking: extracts and chunks
- Upload Route → Chunk Embedding: stores chunks
- Chunk Embedding → Google Gemini API: creates embeddings
- Chunk Embedding → In-Memory Vector Store: writes vectors
- Chat Route → Question Retrieval and Answering: queries helpdesk
- Question Retrieval and Answering → Google Gemini API: embeds and generates
- Question Retrieval and Answering → In-Memory Vector Store: searches vectors
- Chat Route → API Server: returns answer
- API Server → Upload and Chat UI: returns API response