How kratishatandon1/adobe-insight-app works
PDF Insight is a web application for managing PDFs and turning their contents into searchable, conversational, summarized, debated, and audio experiences. The principal workflow is: a user uploads documents, the backend stores them and records metadata, feature panels retrieve or analyze document text, and the frontend presents snippets, insights, answers, arguments, or audio. The graph reflects documented capabilities and sampled wiring; several feature-route internals were not provided, so those links rely on explicit module names and README capabilities.
Main entry points: app.py Backend App · pdf.py PDF API · recommend.py Recommendation API · tts.py TTS API
Components 30
Client Experience
- Web App
frontend/src/App.jsx - PDF Viewer
frontend/src/components/PDFViewer.jsx - Recommendation Panel
frontend/src/components/RecommendationPanel.jsx - Insights Panel
frontend/src/components/InsightsPanel.jsx - Chatbot
frontend/src/components/Chatbot.jsx - Summarize Modal
frontend/src/components/SummarizeModal.jsx - Debate Modal
frontend/src/components/DebateModal.jsx - Podcast Player
frontend/src/components/PodcastPlayer.jsx
API Features
- Backend App
backend/app.py - PDF API
backend/app/routes/pdf.py - Recommendation API
backend/app/routes/recommend.py - Insights API
backend/app/routes/insights.py - Chat API
backend/app/routes/chat.py - Summarize API
backend/app/routes/summarize.py - Debate API
backend/app/routes/debate.py - Podcast API
backend/app/routes/podcast.py - Selection Insight API
backend/app/routes/selection_insight.py - TTS API
backend/app/routes/tts.py
Document Analysis
- PDF Text Extraction
backend/app/utils/embedding_utils.py - Semantic Retrieval
backend/app/utils/embedding_utils.py - Summarization
backend/app/utils/summarizer.py - Debate Generation
backend/app/utils/debate_utils.py - Podcast Generation
backend/app/utils/podcast_utils.py - Gemini LLM
Storage Integrations
- Database Layer
backend/app/database.py - Neon Postgres
- Vercel Blob
- Azure TTS
- Adobe PDF Embed
Other components
- User
Connections 37
- User → Web App: uses
- Web App → Backend App: calls APIs
- Backend App → PDF API: dispatches
- Backend App → Recommendation API: dispatches
- Backend App → Insights API: dispatches
- Backend App → Chat API: dispatches
- Backend App → Summarize API: dispatches
- Backend App → Debate API: dispatches
- Backend App → Podcast API: dispatches
- Backend App → Selection Insight API: dispatches
- Backend App → TTS API: dispatches
- Web App → PDF API: lists files
- PDF API → Vercel Blob: stores PDFs
- PDF API → Database Layer: records files
- Database Layer → Neon Postgres: persists metadata
- Recommendation Panel → Recommendation API: requests matches
- Recommendation API → PDF Text Extraction: extracts sections
- Recommendation API → Semantic Retrieval: ranks sections
- PDF Text Extraction → Vercel Blob: downloads PDFs
- Insights Panel → Insights API: requests insights
- Insights API → Gemini LLM: generates analysis
- Chatbot → Chat API: asks questions
- Chat API → Gemini LLM: generates answers
- Summarize Modal → Summarize API: requests summaries
- Summarize API → Summarization: summarizes documents
- Summarization → Gemini LLM: generates summary
- Debate Modal → Debate API: requests debate
- Debate API → Debate Generation: builds arguments
- Debate Generation → Gemini LLM: generates arguments
- Podcast Player → Podcast API: requests podcast
- Podcast API → Podcast Generation: creates audio
- Podcast Generation → TTS API: requests speech
- TTS API → Azure TTS: synthesizes speech
- PDF Viewer → Adobe PDF Embed: renders PDF
- PDF Viewer → Selection Insight API: submits selection
- Selection Insight API → Gemini LLM: analyzes selection
- PDF Viewer → TTS API: reads selection