MyChatPDF.
Engineering case study by Priyansh Dobariya · React · FastAPI · PostgreSQL · Vector search
Ask a document. Check the source.
A document workspace for uploading PDFs, processing searchable content, and asking questions with source-aware chat and previews.

Behind the build.
Document processing pipeline
Retrieval-backed chat
Document organization and usage controls
Tools & technologies
What this solves
Long PDFs are difficult to search when a user needs a precise answer and the surrounding evidence. This product combines document organization, previews, and chat in one workflow.
How it works
A React frontend calls a FastAPI backend for document, folder, chat, and account operations. Processing and extraction services turn uploaded files into searchable content; the vector service handles retrieval, while the chat service builds responses. SQLAlchemy models hold users, documents, folders, conversations, processing state, and billing records.
From input to outcome
After upload, the processing service extracts document content and prepares it for retrieval. A question reaches the chat route, which resolves the user and document context, retrieves relevant passages, and returns an answer to the conversation. Preview and folder routes let the user inspect and organize the original files.
Decisions visible in the code
- Separate processing state from document records gives the UI a way to represent ingestion progress and failures.
- Document-scoped retrieval and authenticated route dependencies provide a basis for keeping answers attached to the files a user selected.
What the workflow enables
Users can search and discuss their document collection while retaining a path back to the original PDF. Automated frontend document-chat coverage exists in the repository.
No public accuracy or time-saved measurement was found; test files alone do not prove a production pass.