Inspiration
As students, our study materials are scattered across different platforms. To learn a single topic, we have to search through long lecture videos, hundreds of textbook pages, and confusing slide presentations. When we tried using existing AI study tools, we found a major problem: they often invent answers and do not show their exact sources. We built AnchorLearn to solve this by creating an AI tool that links every generated answer directly to the exact video timestamp or PDF slide it came from, ensuring complete accuracy and traceability.
What it does
AnchorLearn is a source-grounded AI study workspace. You can upload course materials like lecture videos and textbook PDFs. When you ask the AI a question, it generates an answer with strict inline citations (for example, [Lecture 1 @ 04:20]).
When you click these citations, the built-in media player instantly jumps to that exact second in the video or that specific page in the PDF. Beyond answering questions, AnchorLearn tracks your understanding of different topics using a mathematical model called Bayesian Knowledge Tracing. Based on your quiz performance, the AI automatically adjusts its teaching style, explaining concepts more simply if you are struggling or providing harder challenges if you are doing well.
How we built it
We built AnchorLearn using a modern microservice architecture:
- Data Processing: We used
faster-whisperto transcribe video speech into text with precise start and end times ($t_{\text{start}}, t_{\text{end}}$). We usedpdfplumberand Google Gemini for extracting text from slides and books. This data was saved into ChromaDB. - AI Backend: We used FastAPI to handle the search process and generate answers using Groq (Llama 3.3). We built a strict software "guardrail" that verifies every single citation against our database before showing it to the user, guaranteeing zero fake sources.
- Frontend and Auth: We built the user interface with Next.js and Tailwind CSS, and handled secure user logins and community databases using Express.js and Supabase.
- The Adaptive Engine: We implemented Bayesian Knowledge Tracing (BKT) to update a student's mastery score after every quiz question:
- If the response is Correct: $$P(L_t \mid \text{Correct}) = \frac{P(L_{t-1}) \cdot (1 - P(S))}{P(L_{t-1}) \cdot (1 - P(S)) + (1 - P(L_{t-1})) \cdot P(G)}$$
- If the response is Incorrect: $$P(L_t \mid \text{Incorrect}) = \frac{P(L_{t-1}) \cdot P(S)}{P(L_{t-1}) \cdot P(S) + (1 - P(L_{t-1})) \cdot (1 - P(G))}$$
- Learning Transition Step: $$P(L_t) = P(L_t \mid \text{Response}) + (1 - P(L_t \mid \text{Response})) \cdot P(T)$$
Challenges we ran into
The hardest technical challenge was achieving exact video synchronization. We had to carefully format our database so that the AI's generated citations could accurately instruct the custom video player to seek to the exact second. Additionally, stopping the AI from guessing fake timestamps required building a custom validation system that cross-references every AI output with our ChromaDB records. Finally, building secure community study hubs required complex database rules to ensure students could only search files they had permission to access.
Accomplishments that we're proud of
We are incredibly proud of eliminating AI hallucinations in our platform. By forcing the LLM to adhere to our citation guardrails, we built a tool that students can actually trust. We are also proud of successfully translating a complex cognitive science model (BKT) into working code that genuinely adapts to the user in real-time, moving beyond a basic chatbot wrapper into a true educational engine.
What we learned
We learned how to benchmark and test AI accuracy using formal frameworks like Ragas. We also gained deep experience in connecting multiple technologies—streaming AI responses from FastAPI into a Next.js frontend while maintaining secure database connections with Supabase. Most importantly, we learned how to apply mathematical learning models to improve software user experience.
What's next for AnchorLearn
We plan to expand AnchorLearn's ingestion pipeline to support audio-only podcasts and direct YouTube link imports. We also want to integrate the platform directly with university Learning Management Systems like Canvas or Moodle, so students can automatically sync their weekly course materials without manually uploading them. Finally, we aim to add real-time multiplayer features to the community hubs, allowing study groups to watch synced lectures and take quizzes together.
Built With
- amazon-web-services
- chromadb
- easyocr
- express.js
- fastapi
- faster-whisper
- ffmpeg
- google-gemini
- groq
- llama-3
- next.js
- node.js
- pdfplumber
- postgresql
- prisma
- python
- rag
- react
- supabase
- tailwind-css
- typescript
- video.js
Log in or sign up for Devpost to join the conversation.