Inspiration
I just wanted to listen to internet lore and drama all day instead of my lectures. But what if the lecture became the drama? We built LoreDrop to help students who struggle with procrastination by turning their dry study materials into a format that is instantly familiar, engaging, and entertaining for Gen Z.
What it does
LoreDrop is an AI-powered study mentor that turns your lecture slides, notes, or readings into a full active-learning experience, not just a summary.
Podcast generation - Upload a PDF, slide deck, Word doc, image, or pasted text, then pick a genre and it becomes a two-host audio podcast (gossip podcast, true crime, sports commentary, gen z slang explainer, or reality TV drama), dramatizing the delivery while keeping every fact intact, with a synced karaoke-style transcript and an AI summary playing alongside it.
Attention check - An on-device webcam check keeps you honest by pausing the episode and calling you out if you look away or start doomscrolling.
Lightning-round quiz - A timed quiz on the actual source material tests what stuck, then a recap card shows your score, streak, and focus time.
Grounded chatbot - Ask a question by typing or by voice, and get an answer sourced strictly from your own uploaded material, with the exact section it was pulled from cited back to you.
Session dashboard - Browse past episodes and stats in one place.
How we built it
- Frontend: React, TypeScript, Vite, and Tailwind.
- Backend: Node.js and Express for a fast, thin API layer.
- AI: OpenAI (Structured Outputs) for dialogue rewriting, summaries, and quiz generation. We also used OpenAI Whisper for speech-to-text when asking the chatbot questions.
- Text-to-Speech: ElevenLabs for synthesizing the multi-host podcast dialogue and chatbot responses.
- Attention Detection: MediaPipe Face Landmarker for on-device, in-browser head-pose detection, used to notice when a user looks away or looks down for too long, entirely client-side with no video ever leaving the browser.
Challenges we ran into
Our biggest challenge was the AI script generator silently dropping content on large lecture decks. It only surfaced because we compared generated episodes against the original source material and noticed later chapters were missing facts, even though the API calls were succeeding without errors. We fixed it by chunking the source material into sequential, context-aware generation calls that each carry the tail end of the previous chunk, so long documents stay complete and read as one continuous conversation instead of silently truncating.
Accomplishments that we're proud of
We successfully merged three very different domains into one seamless application: a complex multi-format text-parsing and chunked generation pipeline, real-time multi-voice text-to-speech orchestration, and live on-device computer vision for attention detection. The whole experience holds up under real content, not just clean demo inputs; it handles actual dense, messy lecture decks and still produces a complete, accurate episode.
What we learned
We learned that reliability with LLMs at scale is a design problem, not just a prompting problem. Our script generator looked correct in every test, but at real lecture-deck sizes it was quietly dropping later content while still returning valid, well-formed output. That taught us to instrument before trusting: we added logging around token usage and finish reasons, then redesigned generation around chunked, continuity-aware calls instead of one large one. We also learned a lot about orchestrating multiple AI APIs together in a single pipeline and structuring OpenAI's Structured Outputs so downstream code could trust the shape of what came back.
What's next for LoreDrop
Our immediate next step is optimizing the prompt generation latency so the time between uploading a slide deck and hearing the podcast start is even faster.
Built With
- ai
- elevenlabs
- express.js
- javascript
- machine-learning
- mediapipe
- node.js
- openai
- react
- tailwindcss
- typescript
- vite
- webcam
Log in or sign up for Devpost to join the conversation.