2025-03-17 21:28:08 +01:00
# OxiCloud TODO List
2025-03-26 18:33:22 +01:00
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
2025-03-26 19:08:07 +01:00
- [x] Implement API for creating folders
- [x] Add support for hierarchical paths in the backend
2025-03-26 18:33:22 +01:00
- [ ] Update UI to show folder structure (tree)
2025-03-26 19:08:07 +01:00
- [x] Implement navigation between folders
- [x] Add functionality to rename folders
- [x] Add option to move files between folders
2025-03-26 18:33:22 +01:00
### 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
2025-03-27 01:13:34 +01:00
- [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
2025-03-26 18:33:22 +01:00
### UI/UX Optimizations
- [ ] Improve responsive design for mobile devices
- [ ] Implement drag & drop between folders
- [ ] Add support for multiple file selection
2025-03-26 19:08:07 +01:00
- [x] Implement multiple file uploads
2025-03-26 18:33:22 +01:00
- [ ] Add progress indicators for long operations
- [ ] Implement UI notifications for events
## Phase 2: Authentication and Multi-User
### User System
- [ ] Design data model for users
- [ ] Implement user registration
- [ ] 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
2025-03-26 19:08:07 +01:00
- [x] Implement secure password hashing with Argon2
- [x] Add session management
- [x] Implement JWT authentication token
2025-03-26 18:33:22 +01:00
- [ ] Add CSRF protection
- [ ] Implement login attempt limits
- [ ] Create activity logging system
## Phase 3: Collaboration Features
### File Sharing
- [ ] 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
2025-03-26 19:08:07 +01:00
- [x] Implement endpoints for file operations
- [x] Add endpoints for users and authentication
2025-03-26 18:33:22 +01:00
- [ ] 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
### 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
## 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
2025-03-17 21:28:08 +01:00
### Backend
2025-03-26 18:33:22 +01:00
- [x] Implement file cache with Rust
- [x] Enable Link Time Optimization (LTO) for better performance
2025-03-26 19:08:07 +01:00
- [x] Optimize large file transmission
- [x] Add adaptive compression by file type
2025-03-26 18:33:22 +01:00
- [x] Implement asynchronous processing for heavy tasks
- [ ] Optimize database queries
- [ ] Implement scaling strategies
2025-03-17 21:28:08 +01:00
### Frontend
2025-03-26 18:33:22 +01:00
- [ ] 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
### Storage
- [ ] Research deduplication options
- [ ] Implement block storage
2025-03-26 19:08:07 +01:00
- [x] Add transparent compression by file type
2025-03-26 18:33:22 +01:00
- [ ] Implement log rotation and archiving
- [ ] Create automated backup system
- [ ] Add support for distributed storage
## Infrastructure and Deployment
2025-03-26 19:08:07 +01:00
- [x] Create Docker configuration
2025-03-26 18:33:22 +01:00
- [ ] Implement CI/CD with GitHub Actions
2025-03-26 19:08:07 +01:00
- [x] Add automated tests
2025-03-26 18:33:22 +01:00
- [ ] Create installation documentation
- [ ] Implement monitoring and alerts
- [ ] Add automatic update system