- Overview
- Features
- Tech Stack
- Architecture
- Getting Started
- Configuration
- Running the Apps
- API Endpoints
- Usage Examples
- Folder Structure
- Contribution
- License
Qesem is an AI-powered study assistant. Students can upload PDFs or text notes, chat with an agentic assistant, generate quizzes automatically, and receive graded results. Responses stream in real time via Server-Sent Events (SSE), and answers are grounded with Retrieval-Augmented Generation (RAG) over your uploaded materials.
- RAG over uploads: Chunking and vector embeddings (Voyage AI) stored in MongoDB for grounded responses.
- Agentic flows: LangChain + LangGraph for quiz generation, grading, and contextual reasoning.
- Realtime SSE: Streaming assistant responses for smooth UX.
- Quiz automation: Auto-generate quizzes and grade user-submitted answers.
- File uploads: PDF/TXT ingestion with size limits and MIME validation.
- Session history: Persisted conversations with resume capability.
- Configurable LLMs: Gemini model selection via env; Voyage embed model override.
- Dark UI: React + Vite + Tailwind CSS 4 with responsive layout.
- Frontend: React 19, TypeScript, Vite, Tailwind CSS 4, Zustand.
- Backend: Node.js, Express 5, TypeScript, MongoDB (Mongoose), SSE.
- AI/ML: LangChain, LangGraph, Gemini (Google Generative Language API), Voyage embeddings.
- Build/Tooling: Vite, ESLint, ts-node, TypeScript.
- client/: Vite React SPA; chat UI, quiz UI, SSE client, upload trigger.
- server/: Express API; routes for chat, quiz, upload, sessions, SSE; LLM + embedding services; MongoDB persistence.
- Node.js 18+ (recommended)
- npm 9+
- MongoDB Atlas or local MongoDB
- API keys: Google Generative Language (Gemini) and Voyage AI
git clone https://github.com/CSEC-ASTU/Qesem.git
cd Qesem
npm install --prefix server
npm install --prefix client