187 lines
6.0 KiB
Markdown
187 lines
6.0 KiB
Markdown
# OxiCloud TODO List
|
|
|
|
This document contains the task list for the development of OxiCloud, a minimalist and efficient cloud storage system similar to NextCloud but optimized for performance.
|
|
|
|
## Phase 1: Basic File Functionalities
|
|
|
|
### Folder System
|
|
- [x] Implement API for creating folders
|
|
- [x] Add support for hierarchical paths in the backend
|
|
- [ ] Update UI to show folder structure (tree)
|
|
- [x] Implement navigation between folders
|
|
- [x] Add functionality to rename folders
|
|
- [x] Add option to move files between folders
|
|
|
|
### File Preview
|
|
- [ ] Implement integrated image viewer
|
|
- [ ] Add basic PDF viewer
|
|
- [ ] Generate thumbnails for images
|
|
- [ ] Implement specific icons by file type
|
|
- [ ] Add text/code preview
|
|
|
|
### Enhanced Search
|
|
- [x] Implement search by name
|
|
- [x] Add filters by file type
|
|
- [x] Implement search by date range
|
|
- [x] Add filter by file size
|
|
- [x] Add search within specific folders
|
|
- [x] Implement cache for search results
|
|
|
|
### UI/UX Optimizations
|
|
- [ ] Improve responsive design for mobile devices
|
|
- [ ] Implement drag & drop between folders
|
|
- [ ] Add support for multiple file selection
|
|
- [x] Implement multiple file uploads
|
|
- [ ] Add progress indicators for long operations
|
|
- [ ] Implement UI notifications for events
|
|
|
|
## Phase 2: Authentication and Multi-User
|
|
|
|
### User System
|
|
- [x] Design data model for users
|
|
- [ ] Implement user registration
|
|
- [x] Create login system
|
|
- [ ] Add user profile page
|
|
- [ ] Implement password recovery
|
|
- [ ] Separate storage by user
|
|
|
|
### Quotas and Permissions
|
|
- [ ] Implement storage quota system
|
|
- [ ] Add basic role system (admin/user)
|
|
- [ ] Create admin panel
|
|
- [ ] Implement folder-level permissions
|
|
- [ ] Add storage usage monitoring
|
|
|
|
### Basic Security
|
|
- [x] Implement secure password hashing with Argon2
|
|
- [x] Add session management
|
|
- [x] Implement JWT authentication token
|
|
- [ ] Add CSRF protection
|
|
- [ ] Implement login attempt limits
|
|
- [ ] Create activity logging system
|
|
|
|
## Phase 3: Collaboration Features
|
|
|
|
### File Sharing
|
|
- [x] Implement shared link generation
|
|
- [ ] Add permission configuration for links
|
|
- [ ] Implement password protection for links
|
|
- [ ] Add expiration dates for shared links
|
|
- [ ] Create page to manage all shared resources
|
|
- [ ] Implement sharing notifications
|
|
|
|
### Recycle Bin
|
|
- [x] Design model for storing deleted files
|
|
- [x] Implement soft deletion (move to trash)
|
|
- [x] Add functionality to restore files
|
|
- [x] Implement automatic purge by time
|
|
- [x] Add option to manually empty trash
|
|
- [x] Implement storage limits for trash
|
|
|
|
### Activity Log
|
|
- [ ] Create model for activity events
|
|
- [ ] Implement logging of CRUD operations
|
|
- [ ] Add logging of access and security events
|
|
- [ ] Create activity history page
|
|
- [ ] Implement filters for activity log
|
|
- [ ] Add log export
|
|
|
|
## Phase 4: API and Synchronization
|
|
|
|
### Complete REST API
|
|
- [ ] Design OpenAPI specification
|
|
- [x] Implement endpoints for file operations
|
|
- [x] Add endpoints for users and authentication
|
|
- [ ] Implement automatic documentation (Swagger)
|
|
- [ ] Create API token system
|
|
- [ ] Implement rate limiting
|
|
- [ ] Add API versioning
|
|
|
|
### WebDAV Support
|
|
- [ ] Implement basic WebDAV server
|
|
- [ ] Add authentication for WebDAV
|
|
- [ ] Implement PROPFIND operations
|
|
- [ ] Add support for locking
|
|
- [ ] Test compatibility with standard clients
|
|
- [ ] Optimize WebDAV performance
|
|
- [ ] Implement Range Requests (RFC 7233) for resumable transfers
|
|
- [ ] Support partial file updates with HTTP PATCH for bandwidth efficiency
|
|
|
|
### Sync Client
|
|
- [ ] Design client architecture in Rust
|
|
- [ ] Implement unidirectional synchronization
|
|
- [ ] Add bidirectional synchronization
|
|
- [ ] Implement conflict detection
|
|
- [ ] Add configuration options
|
|
- [ ] Create minimal client version for Windows/macOS/Linux
|
|
- [ ] Implement bandwidth throttling controls
|
|
- [ ] Add delta synchronization for large files
|
|
- [ ] Support synchronization pausing and resuming
|
|
|
|
## Phase 5: Advanced Features
|
|
|
|
### File Encryption
|
|
- [ ] Research and select encryption algorithms
|
|
- [ ] Implement at-rest encryption for files
|
|
- [ ] Add key management
|
|
- [ ] Implement encryption for shared files
|
|
- [ ] Create security documentation
|
|
|
|
### File Versioning
|
|
- [ ] Design version storage system
|
|
- [ ] Implement version history
|
|
- [ ] Add difference visualization
|
|
- [ ] Implement version restoration
|
|
- [ ] Add version retention policies
|
|
|
|
### Basic Applications
|
|
- [ ] Design plugin/app system
|
|
- [ ] Implement basic text viewer/editor
|
|
- [ ] Add simple notes application
|
|
- [ ] Implement basic calendar
|
|
- [ ] Create API for third-party applications
|
|
|
|
## Continuous Optimizations
|
|
|
|
### Backend
|
|
- [x] Implement file cache with Rust
|
|
- [x] Enable Link Time Optimization (LTO) for better performance
|
|
- [x] Optimize large file transmission
|
|
- [x] Add adaptive compression by file type
|
|
- [x] Implement asynchronous processing for heavy tasks
|
|
- [ ] Optimize database queries
|
|
- [ ] Implement scaling strategies
|
|
- [ ] Implement transfer acceleration with multipart chunking
|
|
- [ ] Implement differential sync algorithm (similar to rsync)
|
|
- [ ] Add strong ETag support for more efficient caching
|
|
|
|
### Frontend
|
|
- [ ] Optimize initial asset loading
|
|
- [ ] Implement lazy loading for large lists
|
|
- [ ] Add local cache (localStorage/IndexedDB)
|
|
- [ ] Optimize UI rendering
|
|
- [ ] Implement intelligent prefetching
|
|
- [ ] Add basic offline support
|
|
- [ ] Implement client-side image resizing before upload
|
|
- [ ] Add HTTP/2 support for multiplexing requests
|
|
- [ ] Implement progressive image loading
|
|
|
|
### Storage
|
|
- [ ] Research deduplication options
|
|
- [ ] Implement block storage
|
|
- [x] Add transparent compression by file type
|
|
- [ ] Implement log rotation and archiving
|
|
- [ ] Create automated backup system
|
|
- [ ] Add support for distributed storage
|
|
- [ ] Implement media transcoding for optimized delivery
|
|
- [ ] Add content-aware compression by file format
|
|
- [ ] Implement dynamic thumbnail resizing based on viewport
|
|
|
|
## Infrastructure and Deployment
|
|
|
|
- [x] Create Docker configuration
|
|
- [ ] Implement CI/CD with GitHub Actions
|
|
- [x] Add automated tests
|
|
- [ ] Create installation documentation
|
|
- [ ] Implement monitoring and alerts
|
|
- [ ] Add automatic update system |