EduXolve — Project Story
🌟 What Inspired Us
The inspiration behind EduXolve came from a very real problem we experience as university students:
course materials are often scattered, hard to search, and difficult to connect with AI tools in a reliable way.
While large language models are powerful, we noticed that:
- They often hallucinate answers in academic contexts
- They rarely respect course-specific materials
- Students struggle to trust AI-generated explanations
We wanted to build a system where AI does not replace learning, but supports it responsibly — grounded in real course content, searchable in natural language, and validated before being shown.
🧠 What We Learned
Through building EduXolve, we learned several important lessons:
AI is only useful when grounded
Retrieval-Augmented Generation (RAG) significantly improves correctness and trust.Validation matters as much as generation
An AI answer is not helpful if its correctness cannot be assessed.System design beats raw intelligence
Separating search, generation, and validation made the system more robust and explainable.Serverless environments impose real constraints
We learned to design around limitations such as read-only file systems and cold starts.UX clarity is critical in educational tools
Even powerful AI feels useless if users don’t understand what to do next.
🛠️ How We Built the Project
EduXolve was built as a full-stack web application with a modular, scalable architecture.
🔹 Frontend
- Built with React
- Clean, structured UI for search, generation, and chat
- Markdown rendering for readable academic content
- Role-based routing for students and admins
🔹 Backend
- Node.js + Express API layer
- Centralized orchestration for search, AI generation, and validation
- Role-based access control enforced on the server
🔹 AI Components
- Semantic search using embeddings to retrieve relevant course materials
- Gemini API for content generation
- Retrieval-Augmented Generation (RAG) to ground AI responses
- A validation layer to assess relevance and correctness before showing output
Conceptually, the AI response follows:
[ \text{Response} = f(\text{User Query}, \text{Retrieved Context}) ]
This ensures the generated output is always tied to known materials.
🔹 Data Layer
- MongoDB for storing:
- Course metadata
- Extracted text
- Search indices and embeddings
- Uploaded files are processed in memory, converted into AI-ready representations, and discarded to ensure compatibility with serverless deployment.
🚧 Challenges We Faced
1️⃣ AI Hallucination
Problem: Free-form AI responses often sounded confident but were incorrect.
Solution: We enforced retrieval-first generation and added a validation step before displaying results.
2️⃣ File Uploads in Serverless Deployment
Problem: Vercel’s read-only file system caused upload failures.
Solution: We switched to in-memory file processing, extracting text immediately and storing only AI-relevant data.
3️⃣ Role-Based Authentication
Problem: Admin access was unstable during early demos.
Solution: We simplified the flow by hardcoding admin credentials for demo stability while enforcing all permissions on the backend.
4️⃣ Balancing Features vs. Reliability
Problem: It was tempting to add many advanced features.
Solution: We focused strictly on core judging requirements: usability, search quality, AI correctness, and system coherence.
🎯 Final Reflection
EduXolve taught us that building an effective AI system is not about using the most advanced model, but about designing the right workflow around it.
By prioritizing grounding, validation, and clarity, we created a system that makes AI genuinely useful for academic learning.
This project strengthened our understanding of AI system design, full-stack development, and responsible AI deployment, and showed us how thoughtful engineering can turn powerful tools into trustworthy solutions.
Built With
- css3
- express.js
- firebase-authentication
- firebase-hosting
- git
- github
- google-gemini-api
- html5
- javascript
- jwt
- markdown
- mongodb-atlas
- mongoose
- multer
- node.js
- postman
- react-router
- react.js
- retrieval-augmented-generation-(rag)
- tailwind-css
- vercel-(serverless-functions)
- vs-code
Log in or sign up for Devpost to join the conversation.