Skip to content

Latest commit

 

History

History
438 lines (395 loc) · 16.2 KB

File metadata and controls

438 lines (395 loc) · 16.2 KB

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

  • Implement API for creating folders
  • Add support for hierarchical paths in the backend
  • Update UI to show folder structure (tree)
  • Implement navigation between folders
  • Add functionality to rename folders
  • 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

  • Implement search by name
  • Add filters by file type
  • Implement search by date range
  • Add filter by file size
  • Add search within specific folders
  • 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
  • Implement multiple file uploads
  • Add progress indicators for long operations
  • Implement UI notifications for events
  • Photos timeline: virtual scrolling
    • Solo mantener en el DOM las filas visibles en el viewport + un margen. Al hacer scroll, reciclar los nodos que salen por arriba para los que entran por abajo.
    • Ventajas: Funciona perfectamente con 50,000 fotos. Uso de memoria constante.
    • Excesiva para ahora — evaluar cuando el volumen de fotos lo justifique.

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

  • Implement secure password hashing with Argon2
  • Add session management
  • Implement JWT authentication token
  • 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

  • Design model for storing deleted files
  • Implement soft deletion (move to trash)
  • Add functionality to restore files
  • Implement automatic purge by time
  • Add option to manually empty trash
  • 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
  • Implement endpoints for file operations
  • 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

  • Implement file cache with Rust
  • Enable Link Time Optimization (LTO) for better performance
  • Optimize large file transmission
  • Add adaptive compression by file type
  • 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
  • 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

Bandwidth & Transfer Optimization

  • Sub-file chunked dedup (Restic/Borg style)
    • Implement Content-Defined Chunking (CDC) with FastCDC/Rabin rolling hash
    • Variable-size chunks (target 1-4 MB) instead of whole-file blobs
    • Per-chunk BLAKE3 hashing and dedup (saves storage + bandwidth on similar files)
    • Chunk-level Zstd compression (better ratio than whole-file)
    • Migrate existing whole-file blobs to chunked storage
  • Delta sync / rsync-style transfers
    • Implement rolling checksum algorithm for block-level diffing
    • Client sends only changed blocks on re-upload (not the full file)
    • Server-side block assembly from delta + existing chunks
    • Huge savings for large files with small edits (VMs, databases, ISOs)
  • Resumable uploads & downloads (RFC 7233 / tus.io)
    • Server tracks partial upload state; client resumes from last byte on failure
    • HTTP Range responses for download resume after network drops
    • tus.io protocol support for cross-client compatibility
  • Client-side optimization before upload
    • Resize images to configurable max dimensions before upload (e.g. 4K cap)
    • Re-encode videos to efficient codec (H.265/AV1) client-side before upload
    • HIGH IMPACT / QUICK WIN — Pre-compute BLAKE3 hash client-side (WASM); query server before upload; skip transfer entirely if blob already exists (instant dedup, zero bandwidth)
  • Server-side on-demand transcoding
    • Store originals; serve WebP/AVIF for images on request (saves download BW)
    • Adaptive video streaming (HLS/DASH) from stored originals
    • Lazy generation + cache of transcoded variants
  • Smart sync (placeholder/on-demand files)
    • Sync client downloads metadata only; fetch file content on first open
    • Pin/unpin files for offline availability
    • Automatic eviction of least-recently-used local copies
  • Transfer-level compression
    • Zstd streaming compression for HTTP responses (better than gzip for large files)
    • Brotli for static assets; Zstd for dynamic/binary content
    • Content-aware: skip compression for already-compressed formats (JPEG, ZIP, etc.)
  • Batched & multiplexed operations
    • Batch small file uploads into single request (tar-stream or multipart bundle)
    • HTTP/2 multiplexing for parallel chunk transfers on single connection
    • Server-side ZIP streaming for multi-file download (already partial)

Infrastructure and Deployment

  • Create Docker configuration
  • Implement CI/CD with GitHub Actions
  • Add automated tests
  • Create installation documentation
  • Implement monitoring and alerts
  • Add automatic update system

New Comprehensive Roadmap

Advanced File Management

  • Implement optimized file upload/download
    • Implement chunked upload for large files
    • Add file integrity verification
    • Develop adaptive compression by file type
  • Implement preview for different file types
    • Create integrated PDF viewer
    • Add office document viewer
    • Develop code viewer with syntax highlighting
  • Add online document editing
    • Integrate text/markdown editor
    • Implement collaborative spreadsheet editor
    • Develop simple image editor
  • Implement file version control
    • Create version history system
    • Add previous version restoration
    • Develop visual changes comparator

Multi-device Synchronization

  • Develop synchronization clients
    • Windows client using Rust
    • macOS client using Rust
    • Linux client using Rust
  • Create mobile applications
    • Android application
    • iOS application
  • Implement selective synchronization
    • Allow specific folder selection
    • Add synchronization profiles
    • Develop synchronization by file types
  • Develop delta synchronization
    • Implement incremental change transfer
    • Add differential compression
    • Implement intelligent retransmission

Advanced Sharing

  • Improve public links
    • Add configurable expiration date
    • Implement password protection
    • Develop download limits
  • Implement granular permissions
    • Add per-folder/file permissions
    • Develop customizable roles
    • Implement permission inheritance
  • Add real-time collaboration
    • Develop collaborative editing
    • Add presence indicators
    • Implement per-user change history
  • Integrate with social networks
    • Add direct sharing to popular platforms
    • Implement customized preview for networks
    • Develop sharing statistics

Robust Security

  • Implement end-to-end encryption
    • Research and select optimal algorithms
    • Develop key management system
    • Add in-transit and at-rest encryption
  • Add multi-factor authentication
    • Integrate app-based authentication
    • Add support for U2F/Yubikey
    • Implement backup codes
  • Develop password policies
    • Add customizable requirements
    • Implement password rotation
    • Develop compromised password detection
  • Create detailed audit system
    • Log access and actions
    • Add security alerts
    • Implement configurable log retention

Personal Data Management

  • Complete CardDAV implementation
    • Finalize contact synchronization
    • Add support for contact groups
    • Implement custom fields
  • Complete CalDAV implementation
    • Finalize calendar synchronization
    • Add support for recurring events
    • Implement notifications/reminders
  • Develop password manager
    • Create encrypted storage
    • Add password generator
    • Implement auto-fill
  • Implement encrypted notes
    • Develop notes editor
    • Add tags and organization
    • Implement full-text search

Automation and Workflows

  • Create automated rules
    • Develop automatic file organization
    • Add scheduled actions
    • Implement customizable triggers
  • Integrate with productivity tools
    • Develop connectors for popular services
    • Add webhooks for integration
    • Implement API for extensions
  • Create customizable workflows
    • Develop document approval/review
    • Add configurable states and transitions
    • Implement automated notifications
  • Implement scheduled actions
    • Add automated backups
    • Develop intelligent archiving
    • Implement periodic analysis

Intelligence and Analysis

  • Implement OCR for images
    • Add text recognition in images
    • Develop indexing of recognized content
    • Implement search in extracted text
  • Create automatic categorization
    • Develop content-based classification
    • Add intelligent grouping
    • Implement organization suggestions
  • Add intelligent tagging
    • Implement entity recognition
    • Develop topic analysis
    • Add facial tagging for photos
  • Develop personalized recommendations
    • Implement usage-based suggestions
    • Add relevant content discovery
    • Develop needs prediction
  • Implement intelligent photo gallery
    • Create advanced photo viewer with smooth zoom and navigation
    • Add EXIF metadata extraction and visualization
    • Implement map of photo locations
    • Develop automatic timeline by date/event
    • Add recognition and grouping by identified people
    • Implement automatic album creation by events, places, and people
    • Develop photo search using combined filters (person+place+date)
    • Add scene and object detection in photos (beach, mountain, animals, etc.)
    • Implement similar or duplicate photo detection
    • Add non-destructive basic editing features (crop, filters, adjustments)
    • Video support

Enterprise Collaboration

  • Create shared workspaces
    • Develop team structures
    • Add project templates
    • Implement customized dashboards
  • Implement role-based access control
    • Develop customizable roles
    • Add granular access policies
    • Implement segregation of duties
  • Add comments and annotations
    • Develop document annotations
    • Add highlighting and marking
    • Implement comment resolution
  • Integrate videoconference services
    • Add direct calls from platform
    • Develop screen sharing
    • Implement meeting recording

Advanced Technical Optimizations

  • Implement distributed architecture
    • Develop high availability
    • Add load balancing
    • Implement fault tolerance
  • Create tiered storage
    • Develop hot/warm/cold stratification
    • Add automatic migration policies
    • Implement cost optimization
  • Optimize compression and deduplication
    • Develop adaptive compression
    • Add block-level deduplication
    • Implement similar file detection

Interoperability and Extensibility

  • Improve RESTful API
    • Complete OpenAPI documentation
    • Add API versioning
    • Implement intelligent rate limiting
  • Develop webhook system
    • Add configurable triggers
    • Implement retries and reliability
    • Develop delivery verification
  • Implement OAuth for third parties
    • Add standard authentication flows
    • Develop granular permission management
    • Implement access revocation
  • Create developer SDK
    • Develop client libraries for popular languages
    • Add examples and documentation
    • Implement testing sandbox

Governance and Compliance

  • Implement retention policies

    • Develop configurable retention by type
    • Add automatic archiving
    • Implement secure deletion
  • Add regulatory compliance

    • Develop GDPR tools
    • Add HIPAA compliance where applicable
    • Implement compliance matrices
  • Create complete data export

    • Develop standardized formats
    • Add scheduled export
    • Implement data portability
  • Implement legal hold

    • Develop case-based retention
    • Add evidence preservation
    • Implement chain of custody
  • lightcss for frontend.