fix trash and additional bugs
This commit is contained in:
+142
-141
@@ -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
|
||||
Reference in New Issue
Block a user