All work
02 · Solo ProjectFeb 2026Problem Identification · Solution Design · Solo Build · Deployment

DocuMind AI

Built because finding one paragraph in a fifty-page report is a bad way to spend an afternoon, and because a citation is the difference between an answer and a guess.

What it isDocument Intelligence Platform
My roleDesigned and built it alone
WhenFeb 2026
TypeSolo Project

The problem

Found first-hand while doing research: pulling reliable, source-grounded information out of long reports and documents is slow and inefficient. You either skim and risk missing the answer, or read everything and lose the day.

What I built

A retrieval-augmented document platform: upload PDFs, DOCX or text files, search them semantically, and get streamed answers with a citation back to the exact source passage and page. Built to solve a clear user workflow problem.

Treat retrieval as the product, not the model. Parse the document properly, chunk it so meaning survives, embed it, and make every generated sentence traceable back to the passage and page it came from.

STEP 01 / 05Your document
01
Your documentUpload any PDF, Word file, or text — a contract, a research report, a policy, anything.
How a 50-page report becomes one honest answer

Designed and built it alone

  • Identified the problem during research and recognised it as a practical, recurring gap.
  • Designed the full product workflow — document ingestion, semantic search, grounded question answering.
  • Built both sides alone: the Python retrieval and generation backend, and the TypeScript interface in front of it.
  • Containerised the whole stack with Docker Compose so it runs as a real deployment rather than a notebook demo.

What is actually running

  1. Document parsing pipeline handles PDF, DOCX, and text uploads, preserving page-level structure.
  2. Semantic chunking ensures long documents are broken down while maintaining contextual meaning.
  3. Vector embeddings and similarity search (ChromaDB) return the most relevant passages for any query.
  4. Streamed LLM generation (Gemini) provides real-time answers, strictly grounded in the retrieved context.
  • Next.js
  • TypeScript
  • FastAPI
  • Google Gemini 2.5 Flash
  • Hugging Face all-MiniLM-L6-v2
  • ChromaDB
  • PostgreSQL
  • Docker

Where it got to

A working, Dockerised Next.js and FastAPI application that answers questions over uploaded documents with streamed, source-cited responses — problem identification through to a shipped tool.

The three questions that matter

What was difficultChunking. Splitting a document is trivial; splitting it so meaning survives the split is not. Passages that read perfectly in the source became unanswerable once they had been cut in the wrong place, and no amount of model quality rescues a bad chunk.
What I learnedRetrieval is the product, not the model. Once every sentence had to carry a citation back to a page, the quality of the answer stopped being about generation and became almost entirely about whether the right passage had been found.
What I would changeEvaluation. I judged answers by reading them, which does not scale and is not evidence. A small labelled set — questions with a known source passage — would have told me whether changing the chunk size actually helped, rather than whether it felt better that afternoon.
NextClassifying student stress →