An open API service indexing awesome lists of open source software.

https://github.com/mdkaifansari04/pdf-chat

A seemless application to chat with any pdf. Supported by admin dashboard to track application state, user and pdf.
https://github.com/mdkaifansari04/pdf-chat

expressjs mongodb nextjs nodejs openaiembeddings render uploadthing vercel

Last synced: 2 months ago
JSON representation

A seemless application to chat with any pdf. Supported by admin dashboard to track application state, user and pdf.

Awesome Lists containing this project

README

          

# ๐Ÿ“„ ChatPDF โ€“ AI-Powered PDF Q&A System

ChatPDF is a fully functional, production-ready **full-stack application** that enables users to upload PDFs and interact with them using **AI-powered question answering**. This project is built with a modern stack and showcases my capability to architect, develop, and deploy an end-to-end system.

---

## ๐Ÿš€ Live Demo

๐Ÿ‘‰ [Link to Live Application](#)

---

## ๐Ÿ”ง Tech Stack & Tools

| Layer | Technology Used |
| ------------ | --------------------------------------- |
| Frontend | React (App), ShadCN Components |
| Backend | Node.js, Express |
| NLP & RAG | OpenAI Embeddings + Pinecone Vector DB |
| File Parsing | pdf-parse |
| Database | MongoDB (for users, PDFs, queries) |
| Storage | Uploadthing |
| Deployment | Vercel (Frontend), Render (Backend API) |

---

## ๐Ÿ’ก Why This Stack?

I've been using **Node.js** extensively and chose it here to demonstrate my expertise in building **scalable, production-level applications** using JavaScript/TypeScript across the stack.

To implement document Q\&A, I used **Retrieval-Augmented Generation (RAG)** โ€” a modern architecture where PDF content is split, embedded using **OpenAI**, and stored in **Pinecone**, a vector database. This enabled:

- Accurate **semantic similarity search**
- Scalable, blazing fast response times
- A structured way to retrieve relevant content per question

This project is more than a tech demo โ€” it's a real-world architecture designed to be **deployable and extensible**.

---

## โœ… Features

### ๐Ÿง‘โ€๐Ÿ’ป User-Facing Features:

- Upload any PDF document
- Ask natural-language questions about the document
- Get smart AI answers using GPT + similarity search
- Previous session history
- Drag & Drop uploader
- Responsive and intuitive chat interface

### ๐Ÿ› ๏ธ Admin Dashboard:

- View all registered users
- Monitor uploaded resources
- Inspect user query sessions
- View platform usage analytics (charts + KPIs)
- Search/filter/sort data
- Designed for future scalability

๐Ÿงช **Admin Credentials:**

| Credentials | |
| ----------- | ----------------- |
| username | admin@chatpdf.com |
| password | admin1234 |

---

## ๐Ÿ“Š Analytics Dashboard

- User signups over time (line chart)
- Resources uploaded per day (bar chart)
- Queries generated daily (line chart)
- Top active users by query volume (pie chart)
- Resource upload breakdown per user

These insights help monitor platform growth and performance in real-time.

---

## ๐Ÿ“ Project Structure

```
/frontend # Frontend (Landing page, Chat UI, Admin dashboard)
/backend # Backend (Node.js APIs, PDF parser, Pinecone integration)

```

---

## ๐Ÿ“ˆ Scope of Improvement

- Add authentication and billing with Stripe for paid usage
- Support DOCX/CSV in addition to PDFs
- More granular analytics per document
- Document summarization on upload
- Real-time streaming response

---

## ๐Ÿ™‹ About Me

I'm a full-stack developer with strong proficiency in **Node.js**, **React**, **MongoDB**, and **AI integrations**. This project showcases my ability to:

- Architect scalable systems
- Write clean backend logic
- Build engaging frontend interfaces
- Integrate third-party AI & DB services
- Deploy to modern cloud platforms (Vercel, Render)

---

## ๐Ÿ“œ License

This project is open for evaluation purposes. All content and code belong to the developer unless otherwise stated.

---

## ๐Ÿค Contact

If you'd like to discuss this project or collaborate:

**Email**: [amdkaif843@gmail.com](mailto:amdkaif843@gmail.com)
**LinkedIn**: \[Your LinkedIn]
**GitHub**: \[Your GitHub]

Let me know if you want a `README` badge section or an ASCII logo at the top โ€” or if you want me to convert this into a downloadable file.