# Video Compression Web App Roadmap ## MVP (Minimal Viable Product) ### Issue 1: Frontend - Single File Upload Page **Description:** Create a simple webpage allowing the user to upload a single video file. **Checklist:** - [ ] Create HTML upload form. - [ ] Add "Upload" button. - [ ] Display "Processing..." message while backend compresses video. - [ ] Show download link after compression is complete. ### Issue 2: Backend - FFmpeg Compression for One File **Description:** Implement server-side compression for a single uploaded video file using FFmpeg. **Checklist:** - [ ] Receive uploaded file and store temporarily. - [ ] Compress video using H.265/HEVC with preset fast and CRF ~24. - [ ] Use AAC audio codec at ~128kbps. - [ ] Send compressed file back to frontend. - [ ] Delete temporary files after download. ## Intermediate ### Issue 3: Frontend - Multiple File Uploads **Description:** Extend the frontend to allow uploading multiple files simultaneously. **Checklist:** - [ ] Support selecting multiple files. - [ ] Display individual progress bars for each file. - [ ] Allow preset selection (codec, resolution, bitrate). ### Issue 4: Backend - Asynchronous Multiple File Processing **Description:** Enable backend to handle multiple file uploads asynchronously. **Checklist:** - [ ] Process multiple videos in parallel. - [ ] Generate individual download links for each compressed file. - [ ] Validate uploaded files to ensure they are videos only. ## Advanced ### Issue 5: Backend - Compression Job Queue **Description:** Implement a job queue to manage video compression tasks efficiently. **Checklist:** - [ ] Queue video compression jobs. - [ ] Limit concurrent compression tasks to prevent server overload. - [ ] Track job status (pending, processing, complete). ### Issue 6: Backend - User Authentication & File History **Description:** Add optional user accounts and allow users to track their uploaded videos. **Checklist:** - [ ] Implement user registration and login. - [ ] Track uploaded files per user. - [ ] Allow users to download their file history. - [ ] Auto-delete files after a configurable number of days. ### Issue 7: Security Enhancements **Description:** Protect the server and users from misuse and unsafe uploads. **Checklist:** - [ ] Sanitize filenames to avoid malicious paths. - [ ] Reject non-video files. - [ ] Enforce max file size limit. - [ ] Ensure temporary files are stored in a safe directory. ### Issue 8: Optional Features **Description:** Add advanced functionality to improve user experience. **Checklist:** - [ ] Provide multiple compression presets (H.264 1080p, H.265 1440p). - [ ] Integrate with NAS or external storage for long-term retention. - [ ] Add public/private mode for uploaded files.