Inspiration
As students, we constantly encounter research papers and technical documentation that are dense, overwhelming, and hard to digest — especially under time pressure. We were inspired by tools like Elicit and Perplexity, but wanted something more tailored to researchers and students: a tool that not only summarizes documents but also answers follow-up questions based on the content, like a research assistant that never sleeps.
The result: Explainaroo — a Gemini-powered AI summarizer + RAG assistant designed to make research understandable for everyone, from beginners to professionals.
What it does
Explainaroo allows users to:
Upload .pdf or .txt documents (e.g., papers, reports, notes).
Automatically generate:
* Key Points
* ELI5 (Explain Like I’m 5) summaries
* Action Items
Use a built-in RAG chatbot (Retrieval-Augmented Generation) to ask questions about the uploaded document.
Copy or download the output in markdown format.
How we built it
We split into 3 focused roles:
🔙 Backend (Flask + Gemini API)
Created a /api/summarize endpoint to handle uploads and call Gemini 1.5 Flash for structured summarization.
Used PyMuPDF to extract text from PDFs and fallback to .txt support for lightweight testing.
Wrote a separate summarize.py module that handles prompt engineering and LLM integration.
🧠 RAG Extension (Optional)
For follow-up questions, we chunked the original document, vectorized each chunk using sentence embeddings, and used cosine similarity to retrieve the top context chunks.
These chunks + user question are fed into Gemini for contextual answers.
🎨 Frontend (React + Vite)
Designed a clean UI with tabs for Key Points, ELI5, and Action Items.
Used native file input + FormData to send documents to the Flask backend.
Added functionality to copy results or download them as .md files.
Challenges we ran into
Parsing PDFs reliably: Some files had poor text encoding, so we added logic to validate extracted content.
Cross-origin issues between React and Flask during development.
Formatting LLM responses cleanly when Gemini occasionally returned unstructured text.
Gemini’s rate limits & edge cases, requiring retries and error handling.
Accomplishments that we're proud of
Built a full-stack AI product in under 36 hours that can analyze and explain dense material.
Created a plug-and-play backend that could easily scale to support multiple document formats and LLM backends.
Made research more accessible for our own teammates — we actually used Explainaroo to summarize the hackathon rules!
Successfully integrated LLMs + RAG with a clean UI and practical UX.
What we learned
How to prompt Gemini for multi-format structured outputs (e.g., splitting into bullets + ELI5 + actions).
How to build a summarization pipeline using PyMuPDF + Gemini + React.
How vector databases and chunking work in real-world RAG setups.
That small UX touches (like copy buttons, markdown export, and tabbed output) go a long way in making AI feel useful.
What's next for Explainaroo
Add support for .docx and .html document parsing.
Integrate text-to-speech summarization for audio accessibility.
Refine the RAG chatbot with more intelligent retrieval (e.g., Graph RAG or chunk re-ranking).
Add glossary explanations for unfamiliar terms and formulas in academic PDFs.
Deploy the full app on Render or Vercel for public use.
Log in or sign up for Devpost to join the conversation.