Inspiration
As Director of the Center for Distance and Online Education (CDOE) at ICFAI Foundation for Higher Education (IFHE) Hyderabad (a deemed to be University), I see the same problem every semester: distance learners study alone, get stuck, and have no one to ask at 11pm before an exam. A textbook cannot answer back. A recorded lecture cannot tell you where you went wrong. I built EduMind AI to change that — to give every distance learner a personal AI tutor that is always available, speaks their language, and understands their course.
What It Does
EduMind AI is a full-stack multi-modal education platform with four distinct AI capabilities powered by GPT-5.6:
🧠 AI Tutor — A conversational tutor built with GPT-5.6 and function calling. The AI acts as an agent: it searches course context, generates practice questions, and adapts its explanation style to the student. Every answer ends with a follow-up question to check understanding.
🎤 Voice Q&A — Students record a question using their microphone. OpenAI Whisper transcribes the audio, GPT-5.6 generates a contextual answer, and the response is read aloud via Text-to-Speech. Hands-free learning for commuters and multitaskers.
🖼️ Image Analysis — Students photograph handwritten notes, textbook diagrams, or problem sets and upload them. GPT-5.6 Vision transcribes, explains, and contextualises the content with course-aware commentary.
📝 Quiz Center — GPT-5.6 Structured Outputs generate valid JSON quizzes on any topic instantly. Each question includes four options, the correct answer, and a detailed explanation shown after submission.
Administrators get a separate dashboard with course management, student analytics, AI-generated study plans, and an AI Tools tab that summarises content and auto-creates courses from pasted material.
How I Built It
The project is built on a React 18 + Vite frontend with a custom design system (Space Grotesk + Inter typography, CSS custom properties). Firebase powers authentication with role-based access (admin vs student), Firestore handles all data persistence, and Firebase Hosting serves the production build via a GitHub Actions CI/CD pipeline.
All four OpenAI capabilities are implemented in a single clean service layer
(src/services/openai.js), with GPT-5.6 used for every completion call. The
agentic AI Tutor implements the full tool-calling loop: it defines functions,
handles tool_calls responses, executes the functions against live Firestore data,
and sends results back for a final grounded answer.
Codex was used throughout the build — scaffolding the Firebase security rules, structuring the multi-step agentic loop, designing the JSON schemas for structured outputs, and writing the CI/CD workflow. Key engineering decisions made with Codex:
- Using
onSnapshotfor real-time chat instead of polling - Separating all AI logic into a single service file for testability
- Implementing the admin registration code pattern to secure role assignment
Challenges
Agentic loop reliability — Getting GPT-5.6 to consistently call the right function with the right arguments required careful prompt engineering and explicit tool descriptions. The second-pass completion after tool results needed its own error boundary.
Voice pipeline latency — Chaining Whisper → GPT-5.6 → TTS introduces 3–5 seconds of latency. Managing user expectation with animated waveform indicators and progressive loading states was essential for the UX to feel responsive.
Role-based security — Firestore security rules that correctly gate admin vs student access without creating race conditions during registration required several iterations. The final rules use server-side role reads, not client-passed claims.
Multi-modal cohesion — Four different OpenAI APIs (chat, audio transcription, TTS, vision) needed a consistent error handling and loading pattern so the UI felt like one product, not four demos stitched together.
What I Learned
GPT-5.6's function calling is genuinely agentic — given good tool descriptions, it makes sensible decisions about when to call tools and how to use the results. The gap between a chatbot and an agent is mostly in how you define the tools, not the model.
Structured outputs with response_format: json_object are remarkably reliable
for educational content generation. Every quiz, study plan, and summary came back
as valid parseable JSON across hundreds of test calls.
Building for distance learners sharpened every UX decision. When your users may have slow connections, limited time, and no peer support, every loading state, every error message, and every empty state matters more than it does for a consumer app.
What's Next
- Mobile app (React Native) for truly on-the-go voice learning
- LMS integration (Moodle, Canvas) for institutional deployment at IFHE
- Multilingual support (Hindi, Telugu) for regional learners
- Peer Q&A board with GPT-5.6 auto-answer and community upvoting
- Proctored AI assessments with Vision-based integrity checking
Built With
- actions
- api
- authentication
- calling
- ci/cd
- codex
- css
- firebase
- firestore
- function
- github
- gpt-4o
- gpt-5.6
- hosting
- javascript
- openai
- outputs
- react
- router
- structured
- tailwind
- text-to-speech
- vision
- vite
- whisper
Log in or sign up for Devpost to join the conversation.