Easy PDF
A mobile PDF workspace for creating, editing, organizing, securing, and understanding documents with AI-assisted question answering.
- AI
- Mobile
- Documents

Context
PDF work on mobile is usually split across separate scanning, editing, signing, compression, security, and AI tools. That fragmentation turns a simple document task into a chain of exports, uploads, and context switches.
Easy PDF brings the complete workflow into one Flutter application. It combines practical on-device document utilities with a FastAPI retrieval backend so users can both modify a PDF and ask grounded questions about its contents.
The problem
Mobile users need to do more than view PDFs. They need to create documents, reorder or split pages, merge files, add annotations and signatures, reduce file size, protect sensitive content, and share the result without moving between several apps.
AI document chat adds a second challenge: semantic similarity alone can miss exact terms, while keyword matching can miss meaning. The answer system therefore needs retrieval that handles both precise language and conceptual questions before sending evidence to the generation model.
Product strategy
The strategy was to make common PDF actions immediately accessible while treating AI as a focused document capability, not a separate destination. Local tools handle direct manipulation; the backend handles ingestion, hybrid retrieval, and grounded response generation.
One document workspace
Keep creation, editing, organization, security, signing, sharing, and AI assistance inside one consistent mobile experience.
Task-first navigation
Present common actions such as merge, split, compress, sign, and secure as clear workflows instead of exposing implementation details.
Ground answers in the document
Retrieve relevant passages before generation so the assistant answers from the selected PDF rather than relying only on model memory.
AuraNode turns that strategy into one native workspace with a provider-neutral backend.
Create and capture
Create PDFs, import files and images, and scan physical pages into a mobile document workflow.
Edit and organize
Annotate, highlight, underline, add text or images, reorder pages, merge documents, and split files into useful outputs.
Sign, secure, and share
Add signatures or stamps, lock and unlock supported documents, compress files, and share completed PDFs from the app.
Ask your PDF
Upload a document, retrieve relevant passages with lexical and semantic search, and receive GPT-generated answers based on that evidence.
System architecture
A Flutter document workspace handles mobile PDF interactions while a FastAPI backend owns ingestion, hybrid retrieval, model credentials, and grounded answer generation.
Flutter mobile application
GetX coordinates navigation and feature state across PDF creation, editing, organization, security, signing, local file access, and document-aware chat.
- Flutter
- GetX
- Mobile
FastAPI service
The Python API protects model credentials, accepts document and chat requests, coordinates ingestion, and controls the retrieval-to-generation pipeline.
- FastAPI
- Python
- REST API
Hybrid search pipeline
BM25 ranks exact lexical matches while Qdrant returns semantically similar chunks produced with Gemini embeddings; the strongest evidence is fused and selected.
- BM25
- Semantic search
- Result fusion
GPT answer generation
The GPT API receives the user question, conversation context, and retrieved document passages, then produces an answer grounded in the selected PDF.
- GPT API
- RAG
- Document Q&A
Qdrant
Stores dense representations of document chunks and performs similarity search against the embedded user question.
BM25 index
Scores chunks by exact term relevance so names, identifiers, and domain-specific phrases remain discoverable alongside semantic matches.
Gemini embeddings
Transforms document chunks and questions into dense semantic vectors used by the Qdrant retrieval path.
Document ingestion
The Flutter application sends a selected PDF to the FastAPI service. The backend extracts and divides the document text into retrievable chunks, creates dense Gemini embeddings for the semantic path, and prepares the same content for BM25 keyword matching. Dense vectors are stored in Qdrant so future questions can be compared with the document collection.
Question lifecycle
When a user asks a question, FastAPI runs two complementary searches. BM25 finds passages containing exact words and phrases, while Qdrant finds passages that are close in meaning to the Gemini-embedded query. The backend combines and selects the strongest results, adds them to the prompt as evidence, and sends the grounded request to the GPT API. The answer returns to the active Flutter conversation.
Separation of concerns
Direct PDF operations remain in the mobile document experience, while AI credentials and retrieval logic stay on the server. Qdrant owns semantic vector search, BM25 owns lexical relevance, Gemini produces embeddings, and GPT handles response generation. This separation lets each part evolve without coupling the Flutter interface to a single retrieval or model implementation.
Key experiences
The interface keeps routine PDF work fast while giving document-based AI conversations a clear, focused flow.
Quick actions
A configurable home experience places the most-used PDF operations within immediate reach.
Visual document editing
Page previews and direct editing controls help users understand where annotations, images, text, and signatures will appear.
Guided file workflows
Selection, progress, validation, and output steps turn complex operations such as merging, splitting, and compression into approachable tasks.
Document-aware chat
Users choose a PDF, ask natural-language questions, and continue a conversation grounded in retrieved document content.
Engineering decisions
Flutter for a unified mobile codebase
A shared Flutter interface supports document-heavy interactions while keeping product behavior consistent across supported mobile platforms.
FastAPI as the AI service boundary
Document ingestion, retrieval, model credentials, and answer generation stay behind a controlled Python API rather than inside the mobile client.
Hybrid retrieval instead of one search mode
BM25 preserves exact keyword matches while Qdrant semantic search finds conceptually related passages; their results are combined before generation.
Gemini embeddings for semantic representation
Document chunks and user questions are converted into dense vectors for similarity search in Qdrant.
GPT for evidence-based generation
The generation model receives the strongest retrieved passages and conversation context to produce a useful answer grounded in the selected document.
A complete PDF workflow with an AI layer.
Easy PDF currently combines a broad set of mobile document utilities with an AI question-answering workflow backed by FastAPI, Qdrant, BM25, Gemini embeddings, and GPT.
The project is presented without speculative adoption or accuracy claims. Its value is demonstrated through the implemented document workflows and the architecture connecting retrieval to grounded generation.
- Flutter mobile application with end-to-end PDF utilities
- Editing, signing, merging, splitting, compression, and security workflows
- FastAPI backend for document ingestion and AI requests
- BM25 and Qdrant semantic search combined for hybrid retrieval
- Gemini embedding pipeline connected to GPT-based answer generation