DEV Community

Priyanshi Bansal
Priyanshi Bansal

Posted on

I Built an AI PDF Simplifier for a Problem My Friend Actually Had

I Built a PDF Simplifier Because My Friend Kept Asking "What Does This PDF Actually Mean?"

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

A few times, my friend would receive a college notice or some other important PDF and the next message would basically be:

"What does this actually mean, and what do I need to do?"

The problem wasn't that the information wasn't there. The problem was that the PDF was usually long, formal, and full of information that wasn't easy to understand quickly.

So I decided to build PDF Simplifier.

PDF Simplifier takes a text-based PDF and turns it into something much easier to understand.

It gives you:

  • A simple summary
  • Important key points
  • Dates and deadlines
  • Warnings or things you should pay attention to
  • An actionable checklist
  • The ability to ask questions about the PDF

The goal was pretty simple: instead of reading through a 10-page notice trying to figure out what matters, you should be able to understand the important parts in a few seconds.

I wanted to keep the project focused on solving one real problem rather than trying to build another general-purpose AI chatbot.

Demo

I haven't deployed the application publicly yet because the project currently runs locally with Ollama.

The basic flow is:

  1. Select or drag and drop a PDF.
  2. PDF Simplifier extracts the text from the PDF in the browser.
  3. The extracted text is sent to the backend.
  4. The backend sends it to the locally running AI model.
  5. The result comes back as a simple summary, key points, dates, warnings, and action items.
  6. You can also ask follow-up questions about the document.

The project currently supports PDFs up to 20MB.

Code

The complete source code is available on GitHub:

GitHub Repository - PDF Simplifier

The repository includes both the frontend and backend, along with setup instructions and tests.

How I Built It

The frontend is built with React and Vite.

For reading PDFs, I used PDF.js. One thing I specifically wanted was to avoid uploading the original PDF itself to my backend.

Instead, the browser extracts the text from each page locally.

The architecture looks roughly like this:


text
PDF
 |
 v
Browser
 |
 | PDF.js extracts text
 v
Extracted text
 |
 v
Express Backend
 |
 v
Ollama
 |
 v
AI-generated structured response
 |
 v
React UI
Enter fullscreen mode Exit fullscreen mode

Top comments (0)