Inspiration

The frustration was real - turning documents into presentations is a massive time sink. As developers, we constantly need to create slides from technical docs, research papers, and project documentation. Traditional tools require manual copying, formatting, and restructuring that takes hours.

I wanted to build something that could intelligently understand document context and generate professional presentations automatically. But not just any solution - it had to be enterprise-grade, scalable, and cost-effective for real-world use.

What it does

RAG-based Presentation Generator transforms any document into professional presentations using Amazon Bedrock.

Key Features:

• 📄 Upload any PDF - drag & drop with progress tracking

• 🧠 RAG-powered intelligence - understands document context using Bedrock Knowledge Base

• 🎨 AI-generated slides - creates 3-15 professional slides with Amazon Nova Pro

• 🔒 Perfect user isolation - each user gets their own Knowledge Base

• 💰 90% cost savings - uses S3 Vectors instead of expensive vector databases

• 📤 Multiple exports - HTML, Reveal.js, and Marp formats

• ⚡ Serverless architecture - scales automatically with zero infrastructure management

Live Demo: https://main.d2ashs0ytllqag.amplifyapp.com Email: demo@aipptgenerator.com
Password: DemoPass123!

How we built it

Architecture: Complete AWS-native serverless stack

Frontend

Next.js/React with AWS Amplify v6 authentication

Drag & drop uploads with real-time progress tracking

Professional UI with status management and export options

Backend (15 Lambda Functions)

Document Processing Pipeline: Upload → Parse → Chunk → Embed → Index

Per-User Knowledge Bases: Individual Bedrock Knowledge Base per user

RAG Query System: Semantic search across user's documents

AI Generation: Context-aware slide creation using Nova Pro

Infrastructure

AWS CDK for infrastructure-as-code

DynamoDB for metadata storage

S3 for document and presentation storage

S3 Vectors for cost-optimized vector storage (90% cheaper!)

Amazon Bedrock Nova Pro + Titan embeddings

Unique Per-User Architecture

User A → Knowledge Base A → S3 Vectors A (only User A's docs)

User B → Knowledge Base B → S3 Vectors B (only User B's docs)

User C → Knowledge Base C → S3 Vectors C (only User C's docs)

Challenges we ran into

1. S3 Vectors Metadata Limit Crisis 💥

Problem: AWS S3 Vectors has a strict 2048-byte metadata limit per vector. Our initial implementation exceeded this, causing complete ingestion failures.

Solution: Comprehensive metadata optimization: • Ultra-minimal S3 key structure (docs/hash/file.txt vs long paths)

• Removed user isolation filtering from vector metadata

• Optimized chunking and parsing prompts

Result: 80%+ metadata size reduction, successful ingestion

2. False "Failed" Status Bug 🐛

Problem: Documents showed confusing "failed" status during processing, even when ultimately successful.

Root Cause: Batch records with same ingestion job IDs interfering with status updates.

Solution: • Fixed Knowledge Base Manager to exclude batch records from status updates

• Implemented pragmatic frontend solution to hide false failures

Result: Clean user experience with proper status progression

3. Per-User Knowledge Base Complexity 🏗️

Problem: Managing individual Knowledge Bases for each user without shared resources was architecturally complex.

Solution: • Dynamic Knowledge Base creation on first document upload

• Automated cleanup and resource management

• Status tracking across multiple AWS services

Result: Scalable architecture supporting 100+ users per account

Accomplishments that we're proud of

🏆 First Implementation of S3 Vectors with Bedrock Knowledge Base - Among the first to implement this cost-saving architecture

🚀 Production-Ready Enterprise Architecture - Complete serverless stack with perfect user isolation

💰 90% Cost Reduction - S3 Vectors vs traditional OpenSearch Serverless for vector storage

🔒 Perfect Data Isolation - Each user gets completely separate AWS resources

⚡ 15 Lambda Functions - Complex distributed system working seamlessly together

🎯 Real-World Problem Solved - Actually deployed and solving document-to-presentation challenges

📊 Comprehensive Documentation - README with troubleshooting guides and architecture details

What we learned

Technical Deep Dives

S3 Vectors Mastery: Understanding metadata limitations and optimization strategies for new AWS services

Bedrock Knowledge Base: Advanced RAG implementation with per-user isolation patterns

Serverless Orchestration: Managing complex workflows across 15+ Lambda functions

AWS CDK Expertise: Infrastructure-as-code for multi-service, multi-tenant deployments

Product Engineering

User Experience Design: Hiding technical complexity behind intuitive interfaces

Error Handling at Scale: Robust status management across distributed systems

Cost Engineering: How architectural decisions directly impact SaaS economics

Scalability from Day One: Designing for multi-tenant isolation and growth

Problem-Solving Methodology

Root Cause Analysis: Deep debugging across multiple AWS services and APIs

Pragmatic Solutions: Sometimes frontend fixes solve backend complexity more elegantly

Documentation-Driven Development: Comprehensive docs prevent future debugging sessions

Version Control Discipline: Meaningful commits with detailed problem-solution mapping

What's next for RAG-based Presentation Generator

🎨 Enhanced AI Capabilities

Multi-modal inputs: Support for images, videos, and audio files

Advanced templates: Industry-specific presentation templates with AI customization

Real-time collaboration: Multi-user editing with conflict resolution

🏢 Enterprise Features

Multi-account architecture: Scale beyond 100 users with AWS Organizations

Advanced analytics: Usage metrics, cost optimization insights, and performance monitoring

API ecosystem: REST/GraphQL APIs for third-party integrations

🚀 Platform Expansion

Mobile applications: Native iOS/Android apps with offline capabilities

Browser extensions: One-click presentation generation from web content

Slack/Teams integration: Generate presentations directly from chat conversations

💡 Advanced AI Features

Presentation coaching: AI feedback on slide effectiveness and presentation flow

Auto-updating slides: Dynamic content that updates when source documents change

Voice narration: AI-generated speaker notes and audio narration

Built With

  • amazon-s3-vectors
  • amazon-titan-embedding
  • aws-amplify
  • aws-bedrock-nova-pro
  • aws-cdk
  • aws-cognito
  • aws-lambda
  • dynamodb
  • graphql/appsync
  • next.js/react
  • node.js-18+
  • python-3.11
  • serverless
  • titan-embeddings
Share this project:

Updates