fix trash and additional bugs

This commit is contained in:
DioCrafts
2025-03-26 18:33:22 +01:00
parent af70581f91
commit e22c0ac855
43 changed files with 2487 additions and 436 deletions
+142 -141
View File
@@ -1,172 +1,173 @@
# OxiCloud TODO List
Este documento contiene la lista de tareas para el desarrollo de OxiCloud, un sistema de almacenamiento en la nube minimalista y eficiente similar a NextCloud pero optimizado para rendimiento.
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.
## Fase 1: Funcionalidades básicas de archivos
## Phase 1: Basic File Functionalities
### Sistema de carpetas
- [ ] Implementar API para crear carpetas
- [ ] Añadir soporte de rutas jerárquicas en el backend
- [ ] Actualizar UI para mostrar estructura de carpetas (árbol)
- [ ] Implementar navegación entre carpetas
- [ ] Añadir funcionalidad para renombrar carpetas
- [ ] Agregar opción de mover archivos entre carpetas
### 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
### Previsualización de archivos
- [ ] Implementar visor de imágenes integrado
- [ ] Añadir visor de PDF básico
- [ ] Generar miniaturas para imágenes
- [ ] Implementar iconos específicos según tipo de archivo
- [ ] Añadir vista previa de texto/código
### File Preview
- [ ] Implement integrated image viewer
- [ ] Add basic PDF viewer
- [ ] Generate thumbnails for images
- [ ] Implement specific icons by file type
- [ ] Add text/code preview
### Buscador mejorado
- [ ] Implementar búsqueda por nombre
- [ ] Añadir filtros por tipo de archivo
- [ ] Implementar búsqueda por rango de fechas
- [ ] Agregar filtro por tamaño de archivo
- [ ] Añadir búsqueda dentro de carpetas específicas
- [ ] Implementar caché para resultados de búsqueda
### 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
### Optimizaciones UI/UX
- [ ] Mejorar diseño responsive para móviles
- [ ] Implementar drag & drop entre carpetas
- [ ] Añadir soporte para selección múltiple de archivos
- [ ] Implementar subida de archivos múltiples
- [ ] Añadir indicadores de progreso para operaciones largas
- [ ] Implementar notificaciones en UI para eventos
### 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
## Fase 2: Autenticación y multiusuario
## Phase 2: Authentication and Multi-User
### Sistema de usuarios
- [ ] Diseñar modelo de datos para usuarios
- [ ] Implementar registro de usuarios
- [ ] Crear sistema de inicio de sesión
- [ ] Añadir página de perfil de usuario
- [ ] Implementar recuperación de contraseña
- [ ] Separar almacenamiento por usuario
### User System
- [ ] Design data model for users
- [ ] Implement user registration
- [ ] Create login system
- [ ] Add user profile page
- [ ] Implement password recovery
- [ ] Separate storage by user
### Cuotas y permisos
- [ ] Implementar sistema de cuotas de almacenamiento
- [ ] Añadir sistema básico de roles (admin/usuario)
- [ ] Crear panel de administración
- [ ] Implementar permisos a nivel de carpeta
- [ ] Añadir monitoreo de uso de almacenamiento
### Quotas and Permissions
- [ ] Implement storage quota system
- [ ] Add basic role system (admin/user)
- [ ] Create admin panel
- [ ] Implement folder-level permissions
- [ ] Add storage usage monitoring
### Seguridad básica
- [ ] Implementar hashing seguro de contraseñas con Argon2
- [ ] Añadir gestión de sesiones
- [ ] Implementar token de autenticación JWT
- [ ] Añadir protección CSRF
- [ ] Implementar límites de intentos de inicio de sesión
- [ ] Crear sistema de registro de actividad (logs)
### 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
## Fase 3: Características de colaboración
## Phase 3: Collaboration Features
### Compartir archivos
- [ ] Implementar generación de enlaces compartidos
- [ ] Añadir configuración de permisos para enlaces
- [ ] Implementar protección con contraseña para enlaces
- [ ] Añadir fechas de expiración para enlaces compartidos
- [ ] Crear página para gestionar todos los recursos compartidos
- [ ] Implementar notificaciones al compartir
### 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
### Papelera de reciclaje
- [ ] Diseñar modelo para almacenar archivos eliminados
- [ ] Implementar eliminación soft (mover a papelera)
- [ ] Añadir funcionalidad para restaurar archivos
- [ ] Implementar purga automática por tiempo
- [ ] Añadir opción de vaciar papelera manualmente
- [ ] Implementar límites de almacenamiento para papelera
### 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
### Registro de actividad
- [ ] Crear modelo para eventos de actividad
- [ ] Implementar registro de operaciones CRUD
- [ ] Añadir registro de accesos y eventos de seguridad
- [ ] Crear página de historial de actividad
- [ ] Implementar filtros para el registro de actividad
- [ ] Añadir exportación de registro
### 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
## Fase 4: API y sincronización
## Phase 4: API and Synchronization
### API REST completa
- [ ] Diseñar especificación OpenAPI
- [ ] Implementar endpoints para operaciones de archivos
- [ ] Añadir endpoints para usuarios y autenticación
- [ ] Implementar documentación automática (Swagger)
- [ ] Crear sistema de tokens de API
- [ ] Implementar limitación de tasa (rate limiting)
- [ ] Añadir versionado de API
### 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
### Soporte WebDAV
- [ ] Implementar servidor WebDAV básico
- [ ] Añadir autenticación para WebDAV
- [ ] Implementar operaciones PROPFIND
- [ ] Añadir soporte para bloqueo (locking)
- [ ] Probar compatibilidad con clientes estándar
- [ ] Optimizar rendimiento WebDAV
### 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
### Cliente de sincronización
- [ ] Diseñar arquitectura de cliente en Rust
- [ ] Implementar sincronización unidireccional
- [ ] Añadir sincronización bidireccional
- [ ] Implementar detección de conflictos
- [ ] Añadir opciones de configuración
- [ ] Crear versión mínima de cliente para Windows/macOS/Linux
### 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
## Fase 5: Funcionalidades avanzadas
## Phase 5: Advanced Features
### Cifrado de archivos
- [ ] Investigar y seleccionar algoritmos de cifrado
- [ ] Implementar cifrado en reposo para archivos
- [ ] Añadir gestión de claves
- [ ] Implementar cifrado para archivos compartidos
- [ ] Crear documentación de seguridad
### File Encryption
- [ ] Research and select encryption algorithms
- [ ] Implement at-rest encryption for files
- [ ] Add key management
- [ ] Implement encryption for shared files
- [ ] Create security documentation
### Versionado de archivos
- [ ] Diseñar sistema de almacenamiento de versiones
- [ ] Implementar historial de versiones
- [ ] Añadir visualización de diferencias
- [ ] Implementar restauración de versiones
- [ ] Añadir políticas de retención de versiones
### File Versioning
- [ ] Design version storage system
- [ ] Implement version history
- [ ] Add difference visualization
- [ ] Implement version restoration
- [ ] Add version retention policies
### Aplicaciones básicas
- [ ] Diseñar sistema de plugins/apps
- [ ] Implementar visor/editor de texto básico
- [ ] Añadir aplicación de notas simple
- [ ] Implementar calendario básico
- [ ] Crear API para aplicaciones de terceros
### Basic Applications
- [ ] Design plugin/app system
- [ ] Implement basic text viewer/editor
- [ ] Add simple notes application
- [ ] Implement basic calendar
- [ ] Create API for third-party applications
## Optimizaciones continuas
## Continuous Optimizations
### Backend
- [ ] Implementar caché de archivos con Rust
- [ ] Optimizar transmisión de archivos grandes
- [ ] Añadir compresión adaptativa según tipo de archivo
- [ ] Implementar procesamiento asíncrono para tareas pesadas
- [ ] Optimizar consultas a base de datos
- [ ] Implementar estrategias de escalado
- [x] Implement file cache with Rust
- [x] Enable Link Time Optimization (LTO) for better performance
- [ ] Optimize large file transmission
- [ ] Add adaptive compression by file type
- [x] Implement asynchronous processing for heavy tasks
- [ ] Optimize database queries
- [ ] Implement scaling strategies
### Frontend
- [ ] Optimizar carga inicial de assets
- [ ] Implementar lazy loading para listas grandes
- [ ] Añadir caché local (localStorage/IndexedDB)
- [ ] Optimizar renderizado de UI
- [ ] Implementar precarga inteligente (prefetching)
- [ ] Añadir soporte offline básico
- [ ] 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
### Almacenamiento
- [ ] Investigar opciones de deduplicación
- [ ] Implementar almacenamiento por bloques
- [ ] Añadir compresión transparente según tipo de archivo
- [ ] Implementar rotación y archivado de logs
- [ ] Crear sistema de respaldo automatizado
- [ ] Añadir soporte para almacenamiento distribuido
### 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
## Infraestructura y despliegue
## Infrastructure and Deployment
- [ ] Crear configuración para Docker
- [ ] Implementar CI/CD con GitHub Actions
- [ ] Añadir pruebas automatizadas
- [ ] Crear documentación de instalación
- [ ] Implementar monitoreo y alertas
- [ ] Añadir sistema de actualizaciones automáticas
- [ ] Create Docker configuration
- [ ] Implement CI/CD with GitHub Actions
- [ ] Add automated tests
- [ ] Create installation documentation
- [ ] Implement monitoring and alerts
- [ ] Add automatic update system