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

https://github.com/aryan0412/pdfgptee


https://github.com/aryan0412/pdfgptee

clerkauth driz langchain neondb nextjs15 openai pinec s3 shadcn-ui stri talwindcss typescript

Last synced: 15 days ago
JSON representation

Awesome Lists containing this project

README

          

# AI Q&A System

**An AI-driven Q&A system with PDF support, built using Next.js 15, OpenAI, and Clerk, featuring real-time chat, vector search, and modern UI components.**

---
## Architecture
![IMG_0012](https://github.com/user-attachments/assets/ea3b0789-9332-42c0-ab89-f742d252fc3e)

![IMG_0013](https://github.com/user-attachments/assets/3751f54a-190d-49a8-b9f6-eb4e0e0ac4f9)

## 🚀 Tech Stack

### 🖥️ Frontend
- **Framework**: Next.js 15 (App Router)
- **Language**: TypeScript
- **UI Components**:
- Radix UI
- ShadCN UI
- Tailwind CSS
- **State Management**: React Query
- **Authentication**: Clerk
- **External Tools**:
- Vercel AI SDK (for streaming chat generation)

### 🗄️ Backend
- **Database**:
- NeonDB (for data storage)
- Pinecone (for vector storage)
- **ORM**: Drizzle ORM
- **External Services**:
- OpenAI SDK (for AI responses)
- AWS S3 (for file storage)
- Stripe (for payment processing)

---

## 📁 Project Structure

```bash
PDFGPTee/
├── public/
├── src/
├── app/ # Main App Router folder
│ ├── api/ # Route handlers (server functions)
│ ├── chat/ # Chat UI page (protected)
│ ├── sign-in/ # Clerk sign-in page
│ ├── sign-up/ # Clerk sign-up page
│ ├── favicon.ico # App icon
│ ├── globals.css # Global styles (Tailwind)
│ ├── layout.tsx # Root layout shared by all routes
│ └── page.tsx # Landing or home page
├── components/ # Reusable React components
│ ├── ui/ # UI elements from shadcn or Radix
│ ├── FileUpload.tsx # PDF upload component
│ └── Providers.tsx # React providers (e.g., Clerk, QueryClient)
├── lib/ # Helpers and configs
│ └── middleware.ts # Middleware logic (e.g., auth checks)
├── .env # Environment variables
├── components.json # Autogenerated by shadcn
├── drizzle.config.ts # Drizzle ORM config
├── eslint.config.mjs # Linting configuration
├── next-env.d.ts # TypeScript Next.js env types
├── next.config.ts # Next.js config file
├── package-lock.json # Dependency lock file
├── package.json # Project metadata and scripts
├── postcss.config.mjs # PostCSS config (used by Tailwind)