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.

Built With

Share this project:

Updates