AI Personalized Tutor — Making Learning Personal
Inspiration
Every student learns differently. Some understand concepts through examples, while others need step-by-step explanations, practice questions, or repeated revision. However, traditional learning platforms often provide the same content to everyone, regardless of their learning needs.
As students, we understand how difficult it can be to find clear explanations, practice relevant questions, and identify the topics that need more attention. This inspired us to build AI Personalized Tutor, an AI-powered learning platform designed to make studying more interactive, accessible, and personalized.
Our goal is to help students learn at their own pace by combining AI-powered tutoring with course materials, quizzes, and learning-progress tracking.
What It Does
AI Personalized Tutor brings several learning tools together in one platform:
- AI Tutor: Helps students ask questions and receive explanations.
- Course Management: Organizes courses and their learning materials.
- Study Material Processing: Extracts content from uploaded documents so it can be used for learning assistance.
- AI-Generated Quizzes: Creates practice questions to help students test their understanding.
- Progress Tracking: Helps monitor quiz performance and learning progress.
- Personalized Recommendations: Supports students in identifying what they should study next.
The goal is to move beyond simply providing information and help students build a more structured learning routine.
How We Built It
We designed the project as three connected components: a frontend, a backend, and a separate AI service.
1. Frontend
We used HTML, CSS, and JavaScript to build the user interface. The frontend provides access to learning features and communicates with the backend through API requests.
2. Backend
We used Node.js and Express.js to build the backend APIs. MongoDB stores application data, while Mongoose helps manage database models. JWT-based authentication supports protected routes and user sessions.
The backend handles user authentication, course management, study materials, quizzes, and learning-related data.
3. AI Service
We built a separate Python service using FastAPI to handle AI-related tasks.
The AI component uses the Google Gemini API to support tutoring and quiz generation. We also use Sentence Transformers with the all-MiniLM-L6-v2 model to create text embeddings and ChromaDB to store and search relevant course-material chunks.
This retrieval-based approach helps the tutor find relevant content from study materials when responding to student questions.
PyMuPDF supports PDF text extraction, while Tesseract OCR supports text recognition from suitable scanned documents and images.
4. Integration
We connected the frontend to the Node.js backend and configured the backend to communicate with the Python AI service. Separating these components makes the project easier to develop, test, and maintain.
What We Learned
Building AI Personalized Tutor helped us learn how different technologies work together in a real-world application.
- How to design REST APIs using Node.js and Express.js.
- How to connect an application to MongoDB.
- How authentication and protected routes work using JWT.
- How to build a Python API with FastAPI.
- How to integrate an external generative AI API.
- How embeddings and vector databases support semantic search.
- How to process study documents for retrieval-based question answering.
- How to connect a frontend, backend, database, and AI service.
- How to debug dependency, configuration, networking, and integration issues.
Most importantly, we learned that building an AI application involves more than connecting a model to a user interface. Data preparation, retrieval quality, error handling, security, and reliable service integration are also essential.
Challenges We Faced
Connecting Multiple Services
The project uses separate frontend, backend, and AI-service components. Getting them to communicate correctly required careful configuration of API URLs, ports, and service startup procedures.
Environment and Dependency Configuration
Setting up the Node.js and Python environments involved resolving package installation and configuration issues. We learned to use separate virtual environments and verify dependencies within the correct project directory.
Retrieving Relevant Study Material
An AI tutor is more useful when it can find context relevant to a student's question. We therefore incorporated text embeddings and ChromaDB to retrieve relevant chunks from learning materials.
Handling Different Document Formats
Study materials may contain selectable PDF text or scanned pages. We incorporated PDF text extraction and OCR tools to support document processing, while recognizing that scanned documents can require additional processing.
Making AI Responses Useful
Generating a response is only part of the problem. The system also needs relevant context, clear explanations, and useful practice questions. We are continuing to improve the quality and reliability of these learning interactions.
What's Next
We plan to continue improving the platform by:
- Refining personalization based on quiz results and learning history.
- Improving document retrieval and answer relevance.
- Expanding support for study-material formats.
- Adding more detailed progress visualizations.
- Improving error handling and deployment reliability.
- Testing the platform with students and incorporating their feedback.
Conclusion
AI Personalized Tutor is our attempt to make technology more useful in everyday education. By combining AI tutoring, course materials, quizzes, and learning analytics, we aim to create a platform that helps students understand concepts, practice effectively, and take greater control of their learning.
This project has been an opportunity to apply our computer science knowledge to an educational problem while learning how to build and integrate a full-stack AI application.
Built With
- ai
- chromadb
- css
- express.js
- fastapi
- google-gemini-api
- html
- javascript
- jwt
- language
- machine-learning
- mongodb
- mongoose
- natural
- node.js
- pymupdf
- python
- rest-api
- retrieval-augmented-generation-(rag)
- sentence-transformers
- tesseract-ocr
Log in or sign up for Devpost to join the conversation.