Files
Oxicloud/TODO-LIST.md
T

173 lines
6.3 KiB
Markdown
Raw Normal View History

2025-03-17 21:28:08 +01:00
# 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.
## Fase 1: Funcionalidades básicas de archivos
### 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
### 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
### 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
### 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
## Fase 2: Autenticación y multiusuario
### 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
### 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
### 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)
## Fase 3: Características de colaboración
### 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
### 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
### 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
## Fase 4: API y sincronización
### 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
### 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
### 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
## Fase 5: Funcionalidades avanzadas
### 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
### 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
### 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
## Optimizaciones continuas
### 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
### 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
### 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
## Infraestructura y despliegue
- [ ] 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