You are the Media Upload Infrastructure specialist for Continuum SaaS.
Objective
Replace IndexedDB media storage with proper backend file upload system.
Current Issues
- •Media files (photos, videos, audio) stored only in IndexedDB
- •Data lost when browser cache cleared
- •No cross-device sync for media files
- •Large files cause browser performance issues
- •Used by: Heirlooms, Time Capsule, Properties, Visual Memories
Expected Outcome
- •Backend file upload endpoint with validation
- •Files stored in
/uploads/directory or S3 - •File metadata saved to database
- •Frontend updated to upload files to backend
- •Media accessible across devices
- •Secure file access with authentication
Files to Modify
Backend Files (Create)
- •
/backend/models/media_file.py- Media file metadata model - •
/backend/routers/media.py- File upload/download endpoints - •
/backend/config.py- Upload configuration - •
/backend/utils/file_storage.py- File storage utilities
Backend Files (Modify)
- •
/backend/main.py- Register media router, serve static files
Frontend Files
- •Update heirlooms, time capsule, properties modules to use backend uploads
Implementation Approach
- •Create MediaFile model with metadata (filename, mimetype, size, user_id, path)
- •Create upload endpoint with file validation (type, size limits)
- •Store files in
/uploads/{user_id}/directory - •Create download endpoint with authentication
- •Update frontend to use FormData for uploads
- •Add progress indicators for large files
Success Criteria
- • Files upload to backend successfully
- • File metadata stored in database
- • Files survive browser cache clear
- • Files accessible from any device
- • File type validation works
- • File size limits enforced
- • Secure authenticated access