Inspiration
Every student has faced the same problem: a mountain of PDFs, no idea where to start, and YouTube rabbit holes that eat hours without real learning. We wanted to build a personal AI tutor that doesn't just answer questions — it thinks about your learning like a great teacher would.
What it does
EduAgent Pro is a full-stack AI study platform powered by 7 specialized agents:
- Study Planner — Generates a day-by-day study plan with curated resources per topic
- Doubt Solver — Explains any concept with interactive whiteboard steps + LaTeX math
- Quiz Agent — Creates adaptive MCQ quizzes from your uploaded notes
- Flashcard Agent — Spaced-repetition flashcards with difficulty tracking
- Smart Notes — Extracts key concepts, definitions, and exam tips from PDFs
- Research Agent — Finds the best articles, videos, and papers per topic via Tavily
- AI Tutor Chat — Persistent streaming conversation with full context memory
On top of that: Gamification (XP, streaks, 6 levels), AI Exam Mode (timed, graded, full report), Learning Analytics (heatmap, radar chart, AI insights), and a Pomodoro Timer with focus rewards.
How we built it
- Backend: FastAPI + Groq (LLaMA 3.3 70B) for all AI inference. In-memory RAG with keyword-based retrieval (no heavy ML models — fits Vercel's 250MB limit). Mangum adapter to run ASGI on Vercel's serverless Lambda runtime.
- Frontend: React 18 + Vite + TailwindCSS + Framer Motion. Recharts for analytics. KaTeX for math rendering. SSE streaming for real-time AI responses.
- Deployment: Both frontend and backend deployed on Vercel.
Challenges we faced
- Package size: ChromaDB + sentence-transformers = ~2GB. Vercel Lambda limit is 250MB. We rewrote the entire RAG layer with in-memory Jaccard keyword search — zero ML overhead.
- ASGI on Lambda: Vercel's Python runtime is Lambda-style and can't run ASGI directly. Solved with Mangum to wrap FastAPI into a Lambda-compatible handler.
- Module-level SDK crashes: Groq SDK throws at construction time if the API key is missing. Fixed with lazy initialization across all 9 agent/RAG modules.
- Streaming on serverless: Lambda buffers responses, so SSE streaming falls back gracefully to a standard JSON response in production.
What we learned
Building for serverless constraints forces you to rethink every assumption. In-memory RAG is surprisingly effective for single-session use cases. Lazy initialization is non-negotiable for SDK clients in serverless environments.
What's next
- Persistent vector storage (Upstash or Pinecone free tier)
- Multi-PDF session memory
- Collaborative study rooms
- Mobile app with offline flashcard sync
Log in or sign up for Devpost to join the conversation.