Inspiration
Studying rarely happens in one place. A useful explanation might be buried in a textbook, an important example could be on a slide, and the part we need from a lecture might appear halfway through a long recording.
We also experienced the frustration of navigating YouTube playlists without knowing which lectures are relevant. Titles and descriptions help, but they do not always reveal what is actually taught.
We built LearnTrace around a simple idea: students should spend less time searching through material and more time understanding it—with evidence they can inspect.
What it does
LearnTrace brings course materials into one local study workspace:
- Add study materials: Upload readable PDFs, PowerPoint slides, notes, timed captions, or audio/video recordings.
- Choose your sources: Select the material for your current task so unrelated courses and sample content do not mix into retrieval.
- Ask with evidence: Retrieve relevant passages with page, slide or timestamp references. With an API key, the tutor can generate an explanation or report insufficient evidence.
- Practise and revise: Take source-based multiple-choice checks, receive cited feedback, revisit a passage and try a follow-up.
- Track actual attempts: View correct/attempt counts saved in the browser, without presenting them as validated mastery scores.
- Explore recordings: Generate timestamped topic candidates from locally transcribed lecture audio.
- Browse YouTube playlists: Filter accessible lecture titles and descriptions and open relevant videos on YouTube. These metadata-based tags are clearly distinguished from transcript-grounded lecture topics. -Find the lecture you need: Paste a public YouTube playlist, browse and filter lectures using their titles and descriptions, and open relevant videos. For timestamped topic candidates grounded in lecture content, upload a recording or timed captions.
How we built it
The frontend uses HTML, CSS and JavaScript, backed by a lightweight Node.js server.
PDF text extraction uses pypdf, while PowerPoint extraction reads slide text from the presentation’s XML. Uploaded recordings are transcribed locally using faster-whisper. Extracted passages retain their source identities and original location labels.
For retrieval, we use BM25 lexical ranking over the learner’s selected sources. Optional OpenAI Responses API calls generate explanations and quiz questions from retrieved material. Structured responses, citation checks and source-quote validation provide guardrails; they do not independently guarantee factual correctness.
The YouTube Data API supplies playlist metadata. API keys stay on the server and are not embedded in the frontend.
Challenges we faced
Retrieval is not the same as answerability. A passage can share words with a question without answering it. We separated related excerpts from generated answers and prevented unassessed or unsupported questions from automatically triggering quizzes.
Source isolation matters. Two courses can use similar vocabulary. We introduced source IDs and server-enforced selection so the learner controls which material contributes.
Quiz generation needs more than valid JSON. We added checks for support quotations, duplicate options and lexical relevance, while keeping a transparent source-reading fallback. Generated questions still need review for correctness and ambiguity.
Asynchronous responses can become misleading. A delayed quiz could appear beneath a newer answer. We added learner-action identities so obsolete responses cannot overwrite the current interaction.
Transcription and topic discovery have limits. Speech recognition can introduce errors, and frequent transcript words do not necessarily describe a coherent topic. We expose evidence and label topic outputs as candidates rather than an exhaustive syllabus.
What we learned
Building LearnTrace taught us that trustworthy educational AI requires more than a convincing response. It needs traceable sources, understandable limitations, careful state management and tests that inspect actual outcomes—not just successful API calls.
We also learned to distinguish:
- A citation from proof of correctness.
- A working workflow from validated learning effectiveness.
- Playlist metadata from actual lecture content.
- Practice history from a learner mastery model.
Accomplishments we are proud of
We connected ingestion, source selection, evidence inspection, practice, grading and revision into a working learner journey.
Our seven regression suites cover extraction, retrieval contracts, quiz-focus handling, frontend behavior, answerability fallbacks, source isolation and the learner journey. We also exercised the browser workflow and verified local transcription with a fresh spoken recording.
These checks demonstrate implemented behavior—not a measured real-course accuracy or learning-gain claim.
Current limitations and what’s next
LearnTrace is a local, single-user prototype. Sources currently clear on server restart, while practice counts remain browser-local. Retrieval is lexical rather than semantic, and citations display extracted passages rather than opening an original document or playing a recording. Its only in initial prototype stage now.
The current version does not interpret diagrams, automatically transcribe arbitrary YouTube links, or provide a validated learner model. Topic completeness and generated-answer correctness remain evaluation priorities.
Next, we want to add persistent workspaces, original-source navigation, stronger assessment verification, visual extraction and meaningful topic-based adaptation. We also plan a reviewed real-course evaluation and simulated multi-session learner testing.
Our goal remains straightforward: help students find the evidence, practise an idea, and return to the material that helps them understand it.
AI assistance disclosure: I used OpenAI Codex extensively as a development assistant for planning, writing and revising code, creating tests and documentation. I directed the project, made scope decisions, tested the application,debugged, features addition and correction and drafting submission/demo text. and recorded the demonstration. LearnTrace also optionally uses the OpenAI API for tutoring and quiz generation, and faster-whisper for local transcription.
Built With
- bm25
- chatgpt
- codex
- css3
- ctranslate2
- faster-whisper
- html5
- javascript
- node.js
- openai-api
- pyav
- pypdf
- python
- rag
- youtube-data-api
Log in or sign up for Devpost to join the conversation.