
Tech Stack
Description
Doc Assistant is a full-stack Retrieval-Augmented Generation (RAG) application that allows users to naturally converse with and extract insights from complex PDF documents , utilizing a version-locked LangChain PDFLoader to handle edge cases during text extraction and chunking.
The backend is structured with strict OOP principles and dual-layer rate limiting to prevent memory crashes from bulk uploads , while an asynchronous worker queue using BullMQ and Redis manages heavy vector storage tasks and triggers real-time UI updates via a database state machine.
- Built a full-stack Retrieval-Augmented Generation (RAG) app allowing users to chat naturally with complex PDF documents and extract insights.
- Migrated legacy parsing logic to LangChain’s PDFLoader (version-locked to ^1.1.4 for API stability) to handle edge cases in text extraction and chunking.
- Designed an async worker queue using BullMQ and Upstash Redis to offload heavy vector storage tasks, tied to a database state machine (Pending → Processing → Success/Failed) for real-time UI updates.
- Structured the backend with strict OOP principles and added dual-layer rate limiting: 50 req/min for standard API traffic and a strict 5 req/min limit on Multer routes to prevent memory crashes from bulk uploads.
Page Info
Secured by Clerk
Clerk is a comprehensive, developer-focused authentication and user management platform designed to help teams quickly add secure sign-up, sign-in, and profile management to their applications without building a custom backend.

Interactive PDF Chat
Natural language conversational interface that allows users to seamlessly interact with and extract insights from complex PDF documents.

Skeleton UI for better UX
Skeleton UI provides significant user experience (UX) benefits by acting as a temporary wireframe placeholder that indicates content is loading, rather than displaying a blank screen or loading spinner. Key advantages include enhanced perceived performance, reduced user frustration, lower bounce rates, and improved visual continuity by preventing jarring layout shifts.
