// PROJECT NOTE

Python
FastAPI
RAG
pgvector
Nuxt

Building DocIntel to learn document processing and RAG

Why I chose a full-stack document application to work with Python, embeddings and retrieval—and how its Nuxt interface connects to a FastAPI and PostgreSQL backend.

Arsam SarkhoshAdded to this blog 2 min read
Read article
PROJECT NOTE
DocIntel interface preview, reused from the portfolio’s project screenshot rather than the original LinkedIn video.
English translation of my original Persian LinkedIn post. Read the original LinkedIn post ↗(opens in a new tab)

Learn by connecting the pieces

I wanted to go further with Python, AI, language models, embeddings and RAG alongside my full-stack work. Instead of stopping at courses and small exercises, I chose to build an application around those ideas.

The result was DocIntel: a document platform that brings uploading, organizing, processing, summarizing and asking questions into one dashboard.

More than a question box

  • Upload and manage documents.
  • Extract and process document content.
  • Generate summaries with AI.
  • Ask questions about a document using RAG.
  • Find relevant document passages through embeddings and vector search.
  • Organize documents with folders, tags and favorites behind an authenticated dashboard.
The document-question workflow
  1. DocumentUpload, extract and process content
  2. EmbeddingsRepresent content for vector retrieval
  3. RetrievalFind passages related to the question
  4. AnswerUse retrieved context in the RAG workflow
A high-level view of the workflow described in my original post. It is not an accuracy benchmark or a guarantee that generated answers are correct.

A web interface with a Python backend

I used Nuxt, Vue, TypeScript and Quasar for the frontend. The backend uses Python, FastAPI, SQLAlchemy and PostgreSQL, with pgvector for vector storage and search. The AI part uses the OpenAI API, embeddings and RAG.

Working across those layers gave me more experience connecting web development to AI features: backend architecture, vector databases, document processing and authentication all had to fit into the same product.

A project to keep developing

For me, DocIntel was a way to learn how these pieces work together, not just how to make an isolated model call. It was one of my first substantial steps into building AI-assisted applications, and I intend to keep developing it.

The related project page links to the frontend preview and backend source. The frontend preview is available separately; the Python backend is not hosted with that demo. Its source is available if you want to explore the implementation.