A modern web application that leverages AI to process and interact with PDF documents. Built with Next.js, TypeScript, and cutting-edge AI/ML technologies.
- PDF Processing: Upload and process PDF documents
- AI-Powered Chat: Interactive chat interface for document-based Q&A
- Authentication: Secure user authentication system
- File Management: Organize and manage uploaded PDFs
- Responsive Design: Works across desktop and mobile devices
- Next.js 15 – React framework for modern web apps
- TypeScript – Strongly-typed JavaScript for scalability
- Tailwind CSS – Utility-first styling framework
- shadcn/ui – Accessible and customizable UI components
- TanStack Query – State and data-fetching management
- Framer Motion – Smooth, modern animations
- Next.js API Routes – Serverless API endpoints
- Drizzle ORM – Type-safe database client
- PostgreSQL (Neon) – Scalable cloud database
- AWS S3 – File storage for PDF uploads
- LangChain – Framework for building LLM-driven apps
- Google Generative AI – Model integration for contextual chat
- Pinecone – Vector database for semantic document search
PromptPDF was developed following Agile methodology to ensure adaptability, collaboration, and rapid iteration between May 30 and July 14.
| Role | Developer | Duration | Methodology | Key Focus Areas |
|---|---|---|---|---|
| Lead Developer | Jeevakrishna Vetrivel | May 30 – July 14, 2025 | Agile (Scrum + Kanban Hybrid) | PDF ingestion, RAG integration, UI/UX design, AI pipeline optimization |
- Sprint Planning: Organized work into 3 major sprints (Core App, AI System, UI Polish)
- Daily Standups (Async): Used GitHub Issues & Projects for task updates
- CI/CD Integration: Automated builds and testing through GitHub Actions
- Iterative Testing: Continuous feedback loop for performance and UX refinement
- Documentation: Maintained changelogs, retrospectives, and sprint notes
PromptPDF integrates a RAG system to enhance the accuracy and contextuality of AI-generated responses.
Workflow:
- Document Ingestion → PDFs parsed and chunked into semantic units
- Vectorization → Chunks embedded using Google Generative AI embeddings
- Vector Storage → Stored in Pinecone for efficient semantic search
- Context Retrieval → Relevant chunks retrieved for each user query
- Response Generation → LangChain sends context to LLM for accurate answers
- Node.js 18+
- PostgreSQL Database
- AWS S3 Bucket
- Google AI API Key
- Pinecone API Key
- Clone the repository
git clone https://github.com/your-username/PromptPDF.git
cd PromptPDF-
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables Create a
.env.localfile in the root directory with the following variables:DATABASE_URL=your_postgres_connection_string AWS_ACCESS_KEY_ID=your_aws_access_key AWS_SECRET_ACCESS_KEY=your_aws_secret_key AWS_REGION=your_aws_region AWS_BUCKET_NAME=your_s3_bucket_name GOOGLE_AI_API_KEY=your_google_ai_api_key PINECONE_API_KEY=your_pinecone_api_key NEXTAUTH_SECRET=your_nextauth_secret NEXTAUTH_URL=http://localhost:3000
-
Run database migrations
npx drizzle-kit push:pg
-
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open http://localhost:3000 in your browser
src/
├── app/ # App router pages and layouts
│ ├── api/ # API routes
│ │ ├── chat/ # Chat API endpoints
│ │ └── create-chat/ # Chat creation endpoints
│ └── chat/ # Chat interface
│ └── [chatId]/ # Individual chat sessions
├── components/ # Reusable UI components
├── lib/ # Utility functions and configurations
└── drizzle/ # Database schema and migrations
-
Branching Strategy
main- Production-ready codedevelop- Development integration branchfeature/*- New featuresbugfix/*- Bug fixes
-
Code Style
- Follow the Next.js style guide
- Use TypeScript for type safety
- Follow the existing code style and patterns
-
Commits
- Write clear, descriptive commit messages
- Reference issues when applicable
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework for Production
- LangChain - Building applications with LLMs
- shadcn/ui - Beautifully designed components
- Tailwind CSS - A utility-first CSS framework
Jeevakrishna Vetrivel
- GitHub: @Jeevakrishna
- LinkedIn: Jeevakrishna Vetrivel
- Portfolio: Jeevakrishna Vetrivel