Files
Oxicloud/TODO-LIST.md
T
2025-03-17 21:28:08 +01:00

6.3 KiB

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