A desktop application built with Python, Flask, React, and Electron for seamless video storage and synchronization with AWS S3.
βββ πZugaCloud
βββ π__pycache__
βββ main.cpython-311.pyc
βββ πbackend
βββ π__pycache__
βββ __init__.cpython-311.pyc
βββ aws_integration.cpython-311.pyc
βββ config_manager.cpython-311.pyc
βββ file_sync.cpython-311.pyc
βββ initialization.cpython-311.pyc
βββ sync_queue.cpython-311.pyc
βββ thumbnail_manager.cpython-311.pyc
βββ πapi
βββ π__pycache__
βββ __init__.cpython-311.pyc
βββ routes.cpython-311.pyc
βββ __init__.py
βββ routes.py
βββ πconfig
βββ config.json
βββ __init__.py
βββ aws_integration.py
βββ config_manager.py
βββ encryption.key
βββ file_sync.py
βββ initialization.py
βββ sync_manager.py
βββ sync_queue.py
βββ thumbnail_manager.py
βββ utils.py
βββ πfrontend
βββ πassets
βββ πthumbnails
βββ πanimated
βββ πstatic
βββ .gitkeep
βββ πelectron
βββ πsrc
βββ main.cjs
βββ preload.cjs
βββ videoPlayer.html
βββ videoPreload.cjs
βββ index.ts
βββ tsconfig.json
βββ πscripts
βββ build-electron.cjs
βββ πsrc
βββ πapi
βββ client.ts
βββ types.ts
βββ πcomponents
βββ πaws
βββ BucketSelector.tsx
βββ CredentialsForm.tsx
βββ πcommon
βββ Button.tsx
βββ ContextMenu.tsx
βββ LoadingSpinner.tsx
βββ Progress.tsx
βββ πfile
βββ FileGrid.tsx
βββ FileItem.tsx
βββ FileList.tsx
βββ FilePreview.tsx
βββ VideoThumbnail.tsx
βββ πlayout
βββ Header.tsx
βββ Layout.tsx
βββ Navbar.tsx
βββ Navigation.tsx
βββ Sidebar.tsx
βββ πsync
βββ ProgressBar.tsx
βββ SyncControls.tsx
βββ SyncStatus.tsx
βββ πui
βββ progress.tsx
βββ πcontexts
βββ SyncContext.tsx
βββ πhooks
βββ useConfig.ts
βββ useElectronFolder.ts
βββ useFileSystem.ts
βββ useSync.ts
βββ πpages
βββ Dashboard.tsx
βββ FileExplorer.tsx
βββ Settings.tsx
βββ πstyles
βββ globals.css
βββ πtypes
βββ config.ts
βββ electron.d.ts
βββ file.ts
βββ global.d.ts
βββ index.d.ts
βββ index.ts
βββ sync.ts
βββ πutils
βββ cn.ts
βββ file.ts
βββ format.ts
βββ formatters.tsx
βββ media.ts
βββ validators.tsx
βββ App.tsx
βββ main.tsx
βββ types.d.ts
βββ vite-env.d.ts
βββ index.html
βββ main.js
βββ package-lock.json
βββ package.json
βββ postcss.config.js
βββ tailwind.config.js
βββ tsconfig.json
βββ tsconfig.node.json
βββ vite.config.ts
βββ πscripts
βββ SynctoS3.bat
βββ .gitattributes
βββ .gitignore
βββ build_exe.py
βββ dev.py
βββ electron_main.js
βββ LICENSE
βββ main.py
βββ package-lock.json
βββ package.json
βββ README.md
- Configuration management endpoints
- AWS/S3 operations
- Synchronization control
- File management
- Health checks
- S3 bucket operations
- File upload/download
- Credential management
- Error handling
- File synchronization logic
- Progress tracking
- Batch file management
- Error recovery
- Layout Components: App structure and navigation
- File Components: File browsing and management
- AWS Components: Bucket selection and credentials
- Sync Components: Synchronization controls and status
- React Context for sync state
- Custom hooks for AWS integration
- File system operations
- Configuration management
- Tailwind CSS for styling
- Custom utility classes
- Responsive design
- Dark theme
- Concurrent Flask and Electron
- Hot reloading
- Development server configuration
- PyInstaller configuration
- Resource bundling
- Encryption setup
- Directory management
- TypeScript configurations
- Electron build settings
- Package dependencies
- Tailwind CSS settings
- Flask application settings
- AWS credentials
- Sync preferences
- Logging configuration
- Feature-based component structure
- Shared utilities and types
- Clear separation of concerns
- Consistent naming conventions
- Type safety with TypeScript
- Error handling and logging
- Security considerations
- Performance optimization
- API endpoint testing
- AWS integration tests
- Sync logic validation
- Component testing
- Hook testing
- Integration testing
- Secure credential storage
- AWS IAM best practices
- Electron security guidelines
- Data encryption
- Lazy loading
- Efficient file handling
- Caching strategies
- Resource management
-
Video Processing
- Thumbnail generation
- Video transcoding
- Metadata extraction
-
User Experience
- Drag and drop interface
- Progress visualization
- File preview
-
Advanced Features
- File versioning
- Conflict resolution
- Offline support
-
Security
- Enhanced encryption
- Access controls
- Audit logging
For secure credential management, you can use the following environment variables:
- AWS_ACCESS_KEY: Your AWS access key
- AWS_SECRET_KEY: Your AWS secret key
These can be set in your environment or through a .env file (not tracked in git)
This is a living document and will be updated as the project evolves.