Short Explanation
I developed and integrated AI modules into an existing Learning Management System for Indonesian Islamic education. The LMS already handled content storage and user management but lacked intelligent features. I built six AI-powered modules using DeepSeek AI and Qdrant vector database to automate repetitive tasks and provide personalized learning experiences. These modules handle content recommendation, automatic tagging, summarization, assignment grading, answer generation, and feedback assistance. The integration processes thousands of educational materials in Indonesian and Arabic across multiple educational levels (RA, MI, MTS, MA), transforming the platform from a basic content repository into an intelligent learning assistant.
Project Goals
The client wants to add an AI module to make it easier for teachers to manage courses and final projects, and to make it easier for students to get course recommendations based on their course history.
My goal was to integrate AI capabilities that could:
- Recommend relevant materials based on what students are learning
- Automatically categorize and tag new content with appropriate educational levels
- Generate summaries of courses
- Grade student for assisting teachers
- Generating answer suggestion for students final project
- Offer personalized feedback beyond just scores
I wanted to augment the existing platform with intelligence, letting teachers focus on teaching and students focus on learning while AI handles the repetitive work.
Tech Stack
Backend:
- Django
Databases:
- MySQL 5.7 (legacy LMS data, dockerized)
- Qdrant (vector database for embeddings)
AI & ML:
- DeepSeek AI (all language processing tasks)
- sentence-transformers (
paraphrase-multilingual-MiniLM-L12-v2)
Features
1. Content Recommender
Uses vector similarity to suggest relevant courses and materials based on user learning history. The system converts course descriptions into embeddings and finds semantically similar content, even if keywords don’t match.
2. Auto Tagging
Automatically classifies new materials with educational levels (RA, MI, MTS, MA) and grade classifications. Teachers upload content, and the system categorizes it immediately without manual intervention.
3. Summarizer
Generates concise summaries of lengthy lessons and articles. Students can preview content before diving deep, and teachers can quickly review materials.
4. Auto Grader
Evaluates student PDF submissions by extracting text and comparing against reference answers. The system provides consistent grading across all submissions using quality-based assessment.
5. Answer Generator
Helps students stuck on questions by searching for relevant context in the vector database and generating explanations based on existing materials.
6. Feedback Assistant
Provides detailed, personalized feedback beyond just scores. The system analyzes submissions and generates educational guidance on how students can improve.
The Problems and How I Addressed It
This was my first time developing a module that integrates AI with a vector database. I found the main issue that became my biggest concern: How do I ensure that the tokens used in each request remain efficient and the cost doesn’t inflate?
So I created a service that converts information about classes into embeddings and stores them in a vector database periodically using a cron job. The stored data serves as a reference for DeepSeek to process each request. This way, I only generate embeddings once for each piece of content, not every time someone searches or asks for recommendations. The similarity searches happen locally in Qdrant—completely free, no API calls needed. This simple architectural decision cut costs by 50-75%.
Another challenge was figuring out Indonesian language support. I needed vector embeddings that could capture semantic relationships in Indonesian (Bahasa Indonesia) for the recommendation system. Testing multilingual pre-trained models like paraphrase-multilingual-MiniLM-L12-v2 with actual Indonesian educational content showed excellent results—no custom training needed. This saved me weeks of work.
Lessons Learned
Working on this AI integration project has been an incredible learning experience, and I’ve learned valuable lessons that changed how I approach AI development. One of the most important lessons was learning about vector databases from scratch. Before this project, I had never worked with vector databases like Qdrant. Understanding how they work—storing embeddings and performing similarity searches—was a steep learning curve. But once I grasped the concept, it opened up a whole new way of thinking about content recommendation and semantic search. This knowledge will be invaluable for future AI projects.
Another crucial lesson was the importance of managing token usage efficiently. I learned that you can’t just make API calls carelessly—the costs add up quickly. The real insight came from understanding that you need to design your system architecture around minimizing token consumption. The decision to use batch processing with cron jobs, cache embeddings permanently, and run similarity searches locally wasn’t just an implementation detail. It was a fundamental architecture choice that cut API costs by 50-75%. This taught me to think about token costs at the design stage, not as an afterthought.
Finally, I learned the value of clearly separating concerns between components. Initially, I was confused about what each piece of technology actually does—I thought vector databases were doing some kind of intelligent analysis. Once I understood that Qdrant is just storage and search while DeepSeek handles all the thinking, everything became simpler. This clarity made the entire system easier to build, debug, and maintain. Overall, this project taught me that successful AI integration isn’t about using the fanciest technology—it’s about understanding what each tool does best and combining them smartly.