A powerful PDF management and editing application with AI-powered assistance. Upload, edit, and fill PDF forms using voice transcription and intelligent suggestions.
- Upload PDFs: Drag and drop or browse to upload PDF documents
- File Management: View all your PDFs with file sizes and modification dates
- URL-safe Naming: Automatic renaming for web compatibility
- Interactive PDF Editor: Powered by NutrientViewer (PSPDFKit) for professional PDF editing
- Form Field Support: Edit and fill PDF forms seamlessly
- Real-time Saving: Save your changes directly to the server
- Voice Transcription: Real-time speech-to-text transcription while editing
- AI Suggestions: Intelligent form field suggestions based on context and voice input
- Screen Context: AI analyzes your screen content for better suggestions
- Smart Fill: Apply AI suggestions with keyboard shortcuts (Cmd/Ctrl + Enter)
- Responsive Design: Works seamlessly across different screen sizes
- Real-time Status: Live indicators for recording, AI mode, and connection status
- Smooth Transitions: Animated panel transitions for optimal workflow
- Visual Feedback: Color-coded form field updates and status indicators
- Node.js 18+
- npm, yarn, pnpm, or bun
- Clone the repository:
git clone <your-repo-url>
cd pdf-dictate
- Install dependencies:
npm install
# or
yarn install
# or
pnpm install
-
Set up your environment variables (if any API keys are required for AI features)
-
Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
- Open http://localhost:3000 in your browser
- Upload a PDF: Click "Upload PDF" on the homepage and select your file
- View PDFs: Browse your uploaded PDFs in the table view
- Edit a PDF: Click the "Edit" button next to any PDF
- Open Editor: Click "Edit" on any PDF to open the interactive editor
- Enable AI Mode: Click the "AI Mode" button to activate voice transcription and AI assistance
- Grant Permissions: Allow screen sharing and microphone access when prompted
- Start Editing: Click on any form field in the PDF
- Voice Input: Speak naturally - your voice will be transcribed in real-time
- AI Suggestions: The AI will provide intelligent suggestions for form fields
- Apply Suggestions: Press
Cmd + Enter
(Mac) orCtrl + Enter
(Windows/Linux) to apply AI suggestions - Save Changes: Click "Save" to persist your changes
Cmd/Ctrl + Enter
: Apply AI suggestion to current form field
- Frontend: Next.js 14 with React
- PDF Rendering: NutrientViewer (PSPDFKit Web)
- UI Components: Custom components with Tailwind CSS
- Icons: Lucide React
- Real-time Transcription: WebSocket-based transcription service
- AI Integration: Custom AI suggestion API
- File Management: Server-side PDF storage and processing
src/
├── app/
│ ├── page.tsx # Homepage with PDF management
│ ├── edit/[name]/page.tsx # PDF editor with AI features
│ ├── layout.tsx # Root layout with NutrientViewer scripts
│ └── globals.css # Global styles
├── components/
│ └── ui/ # Reusable UI components
└── hooks/
└── useRealtimeTranscription.ts # Transcription hook
GET /api/pdfs
- List all uploaded PDFsGET /api/pdfs/[name]
- Serve specific PDF filePOST /api/upload
- Upload new PDFPOST /api/pdfs/[name]/save
- Save edited PDFPOST /api/suggestions
- Get AI suggestions based on context
When AI Mode is activated:
- Screen Capture: Captures your screen for visual context
- Voice Recording: Continuous voice transcription
- Context Analysis: AI analyzes both visual and audio context
- Smart Suggestions: Provides relevant suggestions for form fields
- Visual Feedback: Form fields flash green when filled with AI suggestions
- Form Field Focus: Automatic detection when form fields are selected
- Real-time Updates: Immediate visual feedback for changes
- Professional Tools: Full PDF editing capabilities via NutrientViewer
- Save Management: Robust saving with error handling and status indicators
- Modern browser with WebRTC support for screen sharing
- Microphone access for voice transcription
- Camera/screen sharing permissions for AI context
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
[Add your license information here]
For issues and questions, please open an issue on GitHub.