A sophisticated file upload system for processing multiple invoice documents with batch management, progress tracking, and real-time status updates.
├── backend/
│ ├── index.ts # Main Hono server
│ ├── routes/
│ │ ├── upload.ts # File upload endpoints
│ │ └── batch.ts # Batch management endpoints
│ └── database/
│ ├── schema.ts # Database schema
│ └── queries.ts # Database operations
├── frontend/
│ ├── index.html # Main HTML template
│ ├── index.tsx # React app entry point
│ ├── components/
│ │ ├── App.tsx # Main app component
│ │ ├── BulkUploadPage.tsx # Main upload interface
│ │ └── upload/ # Upload component library
│ │ ├── index.ts # Component exports
│ │ ├── types.ts # TypeScript types
│ │ ├── utils.ts # Utility functions
│ │ ├── UploadContainer.tsx
│ │ ├── EnhancedFileUploader.tsx
│ │ ├── FileGalleryView.tsx
│ │ └── BatchStatusManager.tsx
│ └── style.css # Custom styles
└── shared/
├── types.ts # Shared TypeScript types
└── utils.ts # Shared utility functions
POST /api/v1/batch/upload - Upload multiple files as a batchGET /api/v1/batch/:batchId/status - Get batch upload statusPOST /api/v1/batch/:batchId/retry - Retry failed uploads in a batchDELETE /api/v1/batch/:batchId - Cancel/delete a batch/No API keys required - uses Val Town's built-in services.