Skip to content

Adobe India Hackathon 2025 - Grand Finale Submission, Delivering advanced AI-powered document processing with modern UI/UX design

Notifications You must be signed in to change notification settings

JayrajSinh16/adobe-round-3

Repository files navigation

πŸ† Adobe PDF Insights & Podcast Platform

Grand Finale Submission - Complete AI-Powered Solution

🎯 One-Command Deployment Ready for Jury Evaluation

Docker React FastAPI Adobe AI

πŸŽ‰ Complete PDF Processing, AI Insights & Podcast Generation Platform

🎬 Watch Demo Video for Quick Feature Overview


πŸš€ Quick Start for Jury

One-Command Deployment (Recommended)

command 1 : docker build --platform linux/amd64 -t yourimageidentifier .
command 2 : docker run --rm \
  -v "${PWD}/credentials:/credentials" \
  -e ADOBE_EMBED_API_KEY="c0598f2728bf431baecd93928d677adc" \
  -e LLM_PROVIDER="gemini" \
  -e GOOGLE_API_KEY="api_key" \
  -e GEMINI_MODEL="gemini-model" \
  -e TTS_PROVIDER="azure" \
  -e AZURE_TTS_KEY="api_key" \
  -e AZURE_TTS_ENDPOINT="Your_endpoint" \
  -e AZURE_TTS_REGION="Your_region" \
  -p 8080:8080 \
  yourimageidentifier

System Requirements

  • Docker Desktop with 4GB+ RAM allocated
  • Port 8080 available (configurable in docker-compose.yml)
  • Internet access for AI APIs (Google Gemini & Azure TTS)

Access Points


πŸ“Š Performance Metrics

Metric Performance Details
πŸ“„ PDF Processing ~0.16s per document Includes outline extraction and indexing
πŸ” Search Response <100ms indexed TF-IDF vectorization with caching
πŸ’‘ Insight Generation 2-5s per request Google Gemini API processing time
πŸŽ™οΈ Audio Generation 3-8s per script Azure TTS synthesis and encoding
πŸš€ Container Startup ~30-40s Complete application initialization
πŸ’Ύ Memory Usage 2-4GB Optimized for production deployment
🌐 Frontend Bundle <2MB gzipped Vite optimization with code splitting
πŸ”„ API Response <50ms average FastAPI with async processing

🎯 Core Features Implemented

βœ… Mandatory Requirements

  • πŸ“„ PDF Upload & Processing - Drag & drop with automatic outline generation
  • πŸ” Advanced Semantic Search (Heading) - Cross-document content discovery with the model made in Round 1A
  • 🎯 Text Highlighting - Real-time text highlighting in PDF viewer during search
  • 🀝 Content Connections - Intelligent relationship discovery between documents
  • ⚑ High Performance - Sub-second response times, optimized algorithms
  • 🎨 Modern UI - Responsive design with smooth interactions and animations

πŸ† Bonus Features (+10 Points)

  • πŸ’‘ AI Insights Bulb (+5) - 5 insight types: takeaways, contradictions, examples, cross-references, facts
  • πŸŽ™οΈ Podcast Generation (+5) - AI-generated audio content with Azure TTS
  • 🎯 PDF Navigation - Click-to-navigate with text highlighting via Adobe Embed API
  • πŸ”„ Real-time Updates - Live connection discovery and insight caching

🌟 Advanced Features

  • πŸ“– Inline PDF Viewer - Embedded Adobe PDF Embed API with text selection
  • 🎨 Text Selection Popup - Interactive popup for selected text with connections
  • πŸ”Š Audio Playback - Integrated audio player for generated podcasts
  • πŸ“± Responsive Design - Works seamlessly on desktop, tablet, and mobile
  • ⚑ Real-time Search - Instant search results with debounced input
  • 🎭 Framer Motion Animations - Smooth transitions and micro-interactions

🎯 Feature Spotlight: Advanced Semantic Search with Text Highlighting

How It Works

Our intelligent semantic search system provide accurate content discovery across all uploaded PDFs. When you search for content, the system:

  1. Analyzes Your Query - Processes natural language queries using advanced NLP
  2. Searches Document Outlines - Finds relevant headings and sections across all PDFs
  3. Ranks Results - Uses relevance scoring with exact match prioritization
  4. Highlights Content - Opens the relevant document and highlights matching text
  5. Shows Context - Displays the document page and surrounding content

🎯 Text Highlighting in PDF Viewer

When you click on a search result:

  • Automatic Navigation - Opens the document to the exact page
  • Text Highlighting - Highlights the matching content in the PDF viewer
  • Adobe Embed Integration - Uses Adobe PDF Embed API for precise text highlighting
  • Smooth Transitions - Framer Motion animations for seamless navigation

Search Algorithm

# Linux/macOS - Make executable and run
chmod +x run-jury.sh
./run-jury.sh

# Windows - Run batch file
run-jury.bat

# Direct Docker Compose (Alternative)
docker-compose up --build

# Silent background deployment
docker-compose up --build -d

Docker Commands

# Build only (without running)
docker build -t adobe-pdf-platform .

# Run with custom port
docker run -p 3000:8080 adobe-pdf-platform

# Run with environment variables
docker run -p 8080:8080 \
  -e GOOGLE_API_KEY=your_key \
  -e AZURE_TTS_KEY=your_key \
  adobe-pdf-platform

πŸ› οΈ Development Commands

Local Development Setup

# Backend development
cd backend
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or
venv\Scripts\activate     # Windows

pip install -r requirements.txt
python main.py

# Frontend development
cd frontend
npm install
npm run dev

# Run both in development mode
npm run dev:all

Development with Docker

# Development build with hot reload
docker-compose -f docker-compose.dev.yml up

# Run specific services
docker-compose up backend
docker-compose up frontend

# Execute commands in running container
docker-compose exec adobe-pdf-platform bash
docker-compose exec adobe-pdf-platform python backend/main.py

πŸ—οΈ Technical Architecture

Single Container Solution

πŸ“¦ Docker Container (Production-Ready)
β”œβ”€β”€ 🎨 Frontend (React 19 + Vite)
β”‚   β”œβ”€β”€ Adobe PDF Embed API Integration
β”‚   β”œβ”€β”€ Modern UI with Framer Motion
β”‚   β”œβ”€β”€ TailwindCSS Styling
β”‚   β”œβ”€β”€ Real-time Text Selection
β”‚   └── Responsive Design System
β”œβ”€β”€ πŸ”§ Backend (FastAPI + Python 3.11)
β”‚   β”œβ”€β”€ PDF Processing Pipeline
β”‚   β”œβ”€β”€ Google Gemini AI Integration  
β”‚   β”œβ”€β”€ Azure Text-to-Speech
β”‚   β”œβ”€β”€ Round 1A Search Engine
β”‚   β”œβ”€β”€ Connection Discovery Engine
β”‚   └── RESTful API Endpoints
β”œβ”€β”€ 🧠 AI Services
β”‚   β”œβ”€β”€ Google Gemini (Text Analysis)
β”‚   β”œβ”€β”€ Azure TTS (Audio Generation)
β”‚   β”œβ”€β”€ TF-IDF Vectorization
β”‚   └── Cosine Similarity Matching
└── πŸ’Ύ Storage
    β”œβ”€β”€ PDF Files
    β”œβ”€β”€ Generated Outlines
    β”œβ”€β”€ Audio Content
    └── Search Indices

Component Architecture

Frontend Components (React 19)

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ LeftPanel.jsx           # File list and search interface
β”‚   β”œβ”€β”€ CenterPanel.jsx         # PDF viewer and content display
β”‚   β”œβ”€β”€ RightPanel.jsx          # Insights and podcast tabs
β”‚   β”œβ”€β”€ search/
β”‚   β”‚   β”œβ”€β”€ SemanticSearch.jsx  # AI-powered search interface
β”‚   β”‚   └── FilenameSearch.jsx  # Basic filename filtering
β”‚   β”œβ”€β”€ InlinePDFViewer.jsx     # Adobe Embed API wrapper
β”‚   β”œβ”€β”€ TextSelectionPopup.jsx  # Interactive text selection
β”‚   β”œβ”€β”€ InsightsTab.jsx         # AI insights generation
β”‚   └── PodcastTab.jsx          # Audio content generation
β”œβ”€β”€ services/
β”‚   └── api.js                  # API communication layer
└── utils/
    └── pdfDb.js               # Client-side storage utilities

Backend Services (FastAPI)

backend/
β”œβ”€β”€ main.py                    # Application entry point
β”œβ”€β”€ config.py                  # Environment configuration
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ documents.py           # PDF upload and management
β”‚   β”œβ”€β”€ search.py              # Semantic search endpoints
β”‚   β”œβ”€β”€ insights.py            # AI insights generation
β”‚   β”œβ”€β”€ connections.py         # Document relationship discovery
β”‚   └── podcast.py             # Audio generation endpoints
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ document_service.py    # PDF processing logic
β”‚   β”œβ”€β”€ search_service.py      # TF-IDF search implementation
β”‚   β”œβ”€β”€ insights_service.py    # Gemini AI integration
β”‚   β”œβ”€β”€ connection_service.py  # Relationship analysis
β”‚   └── podcast_service.py     # Azure TTS integration
β”œβ”€β”€ models/                    # Data models and schemas
β”œβ”€β”€ outline_engine/            # PDF outline extraction
└── utils/                     # Shared utilities and helpers

🎯 Jury Evaluation Guide

Quick Validation Steps

  1. πŸš€ Deploy: Run docker-compose up --build or ./run-jury.sh
  2. βœ… Verify: Check http://localhost:8080/health (should return {"status": "healthy"})
  3. πŸ“„ Upload: Try uploading a PDF via the drag & drop interface
  4. πŸ” Search: Test semantic search functionality with sample queries
  5. πŸ’‘ Insights: Generate AI insights for selected text content
  6. πŸŽ™οΈ Audio: Create a podcast from uploaded PDFs
  7. 🎯 Navigation: Test click-to-navigate from search results

Key Differentiators to Evaluate

  • πŸ† Complete Integration - Frontend + Backend in single container with health checks
  • ⚑ Production Ready - Comprehensive error handling, logging, and monitoring
  • 🎨 User Experience - Modern, responsive interface with smooth animations
  • 🧠 AI Integration - Multiple AI services (Google Gemini + Azure TTS) working seamlessly
  • πŸ“ˆ Performance - Optimized for speed, reliability, and resource efficiency
  • πŸ” Advanced Search - Real-time semantic search with text highlighting and navigation
  • πŸ“– PDF Integration - Deep Adobe PDF Embed API integration with text selection

Feature Verification Checklist

Core Requirements βœ…

  • PDF upload and processing pipeline works end-to-end
  • Semantic search returns relevant results across documents
  • Search results navigate to exact PDF pages with highlighting
  • Content connection discovery finds relationships between documents
  • High-performance response times (search <100ms, processing <1s)
  • Modern, responsive UI works on different screen sizes

Bonus Features βœ…

  • AI Insights Bulb generates 5 different insight types
  • Podcast generation creates audio content from PDF text
  • Text selection in PDF triggers instant insight generation
  • Real-time search updates as user types
  • Smooth animations and micro-interactions throughout UI

Preview Command Issues

# If npm run preview fails, ensure build files exist
cd frontend
npm run build                      # Build production files first
npm run preview                    # Then preview

# Check if port 3000 is available
sudo lsof -i :3000                # Check what's using port 3000
npx kill-port 3000                # Kill process on port 3000

# Use different port for preview
npm run preview -- --port 3001    # Use port 3001 instead

# Verify Vite installation
npm list vite                     # Check if Vite is installed
npm install vite --save-dev       # Reinstall Vite if needed

πŸŽ‰ Ready for Jury Evaluation!

Just run docker-compose up --build and visit http://localhost:8080

Complete PDF insights and podcast platform in a single command πŸš€


πŸ† Connecting the Dots - Grand Finale Submission

Delivering advanced AI-powered document processing with modern UI/UX design

πŸ“§ Support: Check logs with docker-compose logs -f for any issues

About

Adobe India Hackathon 2025 - Grand Finale Submission, Delivering advanced AI-powered document processing with modern UI/UX design

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •