workspace/projects/gamilit/docs/03-fase-extensiones/EXT-006-contenido/historias-usuario/US-CONT-003-biblioteca-recursos.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

9.0 KiB

US-CONT-003: Biblioteca de Recursos Multimedia

Información Básica

Campo Valor
ID US-CONT-003
Épica EXT-006 - Gestión de Contenido
Título Sistema de Biblioteca y Gestión de Recursos Multimedia
Prioridad Alta (P1)
Story Points 6 SP
Estado NOT STARTED
Fase Mes 3 (Extensiones Primera Ola)
Presupuesto $3,400 MXN

Historia de Usuario

Como profesor o creador de contenido Quiero una biblioteca centralizada para gestionar imágenes, videos, audios y PDFs con organización, búsqueda y optimización automática Para reutilizar recursos fácilmente, mantener contenido organizado y optimizar almacenamiento


Valor de Negocio

Impacto

  • Eficiencia: Reutilizar recursos reduce tiempo 50%
  • Organización: Búsqueda rápida vs carpetas caóticas
  • Performance: Compresión reduce bandwidth 60%
  • Almacenamiento: Deduplicación ahorra storage 30%

Métricas de Éxito

  • 1000 recursos subidos en primer mes

  • 70% recursos reutilizados 2+ veces

  • Tiempo de búsqueda <5 segundos
  • 80% satisfacción con organización


Criterios de Aceptación

CA-01: Upload de Multimedia

Soportar formatos:

  • Imágenes: JPG, PNG, GIF, WebP, SVG (máx 10MB)
  • Videos: MP4, WebM, MOV (máx 500MB)
  • Audios: MP3, WAV, OGG (máx 50MB)
  • Documentos: PDF (máx 20MB)

Features de upload:

  • Drag & drop de archivos
  • Multi-upload (hasta 20 archivos simultáneos)
  • Upload desde URL externa
  • Copiar/pegar imágenes desde clipboard
  • Progress bar por archivo
  • Preview durante upload
  • Validación de formato y tamaño
  • Compresión automática (configurable)

CA-02: Galería con Preview

  • Vista en grid (thumbnails)
  • Vista en lista (con metadata)
  • Preview al hover (quick look)
  • Lightbox para ver imagen completa
  • Video player inline para videos
  • Audio player para audios
  • PDF viewer inline
  • Información visible: nombre, tamaño, fecha, dimensiones

CA-03: Organización por Carpetas

  • Crear carpetas y subcarpetas (ilimitado)
  • Arrastrar archivos entre carpetas
  • Mover múltiples archivos (multi-select)
  • Renombrar carpetas
  • Eliminar carpetas (mover contenido o eliminar todo)
  • Breadcrumbs para navegación
  • Árbol de carpetas colapsable
  • Carpetas favoritas (acceso rápido)

CA-04: Búsqueda y Filtrado

Búsqueda por:

  • Nombre de archivo (autocompletado)
  • Tags
  • Tipo de archivo (imagen, video, audio, PDF)
  • Fecha de subida (rangos)
  • Tamaño (rangos)
  • Dimensiones (para imágenes)
  • Subido por (usuario)

Ordenar por:

  • Fecha (más reciente/antiguo)
  • Nombre (A-Z)
  • Tamaño (mayor/menor)
  • Uso (más/menos usado)

Filtros rápidos:

  • Mis archivos
  • Archivos compartidos
  • Usados recientemente
  • Sin usar

CA-05: Tags y Metadata

  • Agregar tags ilimitados por archivo
  • Tags sugeridos automáticamente (IA básica)
  • Título y descripción editables
  • Alt text para imágenes (accesibilidad)
  • Metadata automática:
    • Dimensiones (para imágenes)
    • Duración (para video/audio)
    • Páginas (para PDF)
    • Formato y codec
  • Copyright y licencia (opcional)
  • Edición bulk de metadata

CA-06: Compresión Automática

Imágenes:

  • Redimensionar si >2000px de ancho
  • Compresión inteligente (calidad 85%)
  • Generación de thumbnails (200x200, 400x400)
  • Conversión a WebP (opcional, para web)
  • Mantener original como backup

Videos:

  • Transcodificar a H.264 si otro formato
  • Generar thumbnail de portada
  • Múltiples calidades (360p, 720p, 1080p)
  • Compresión adaptativa

PDFs:

  • Optimización de tamaño
  • Generación de thumbnails de páginas

CA-07: Conversión de Formatos

  • Imágenes: convertir entre JPG, PNG, WebP
  • Videos: convertir a MP4 estándar
  • Audios: normalizar a MP3
  • PDFs: optimizar para web
  • Batch conversion (múltiples archivos)
  • Queue de trabajos de conversión

CA-08: Integración con Servicios Externos

YouTube/Vimeo:

  • Pegar URL para importar
  • Guardar metadata (título, descripción)
  • Embed code generado automáticamente

Google Drive/Dropbox:

  • Conectar cuenta
  • Importar archivos
  • Sincronización bidireccional (opcional)

Unsplash/Pexels:

  • Buscar imágenes stock gratis
  • Importar directamente a biblioteca
  • Atribución automática

CA-09: Límites de Storage por Institución

  • Dashboard de uso de storage
  • % usado de quota
  • Alerta al llegar a 80%
  • Top archivos por tamaño
  • Sugerencias de limpieza (archivos sin usar)
  • Upgrade de plan (si SaaS)
  • Archivado a cold storage (>1 año sin usar)

CA-10: Deduplicación Inteligente

  • Detectar archivos duplicados (hash MD5)
  • Alertar al subir duplicado
  • Opción de reemplazar o mantener ambos
  • Referenciar duplicados (ahorra storage)
  • Limpieza de duplicados batch

CA-11: Compartir y Permisos

  • Compartir archivo con otros profesores
  • Permisos: Ver / Descargar / Editar
  • Compartir carpeta completa
  • Link público (con expiración opcional)
  • Password-protect para links
  • Analytics de compartición (vistas, descargas)

CA-12: Uso y Referencias

  • Ver dónde se usa cada archivo (módulos, ejercicios)
  • "Usado en 5 lugares" con links
  • Prevenir eliminación si está en uso
  • Reemplazar archivo (actualiza todas las referencias)
  • Historial de uso

CA-13: Exportación y Backup

  • Exportar archivos seleccionados como ZIP
  • Exportar carpeta completa
  • Backup automático a S3/similar
  • Recuperar archivos eliminados (papelera, 30 días)
  • Restaurar versiones anteriores (si US-CONT-004)

CA-14: Performance y CDN

  • Storage en S3/MinIO/similar
  • CDN para servir archivos (CloudFlare, AWS CloudFront)
  • Lazy loading de galería (virtual scrolling)
  • Thumbnails pre-generados
  • Caché de metadata (Redis)
  • URLs firmadas para seguridad

CA-15: Accesibilidad

  • Alt text requerido para imágenes
  • Transcripciones para videos (manual o automática)
  • Subtítulos para videos (SRT upload)
  • Tags descriptivos
  • Screen reader compatible
  • Navegación por teclado

Especificaciones Técnicas

Technology Stack

Frontend:
- react-dropzone para drag & drop
- react-image-gallery para lightbox
- react-player para videos
- pdf-viewer para PDFs

Backend:
- Multer para file upload
- Sharp para procesamiento de imágenes
- FFmpeg para videos
- AWS S3 o MinIO para storage
- CloudFront/CloudFlare para CDN

Processing:
- Bull queue para trabajos pesados
- Worker threads para conversión

Frontend Components

src/features/media-library/
├── components/
│   ├── MediaLibrary.tsx
│   ├── FileUploader.tsx
│   ├── MediaGrid.tsx
│   ├── MediaList.tsx
│   ├── FolderTree.tsx
│   ├── SearchBar.tsx
│   ├── Lightbox.tsx
│   ├── VideoPlayer.tsx
│   ├── PDFViewer.tsx
│   └── StorageQuota.tsx
└── hooks/
    ├── useMediaLibrary.ts
    ├── useUpload.ts
    └── useSearch.ts

Backend API

POST   /api/media/upload
GET    /api/media
GET    /api/media/:id
PUT    /api/media/:id
DELETE /api/media/:id
POST   /api/media/folder
GET    /api/media/search?q=...
GET    /api/media/quota
POST   /api/media/convert

Diferenciación con Alcance Inicial

Alcance Inicial (EAI)

  • Upload básico de imágenes
  • Sin organización
  • Sin biblioteca centralizada
  • Sin optimización

Esta Historia (EXT-006)

  • Biblioteca completa: imágenes, videos, audios, PDFs
  • Organización por carpetas con búsqueda avanzada
  • Tags y metadata enriquecidos
  • Compresión automática y conversión
  • Integración con servicios externos
  • Deduplicación y storage optimization
  • CDN y performance
  • Esto es media management profesional

Dependencias

Depende de

  • US-CONT-001: Editor usa biblioteca
  • US-CONT-002: Ejercicios usan multimedia
  • Infraestructura: S3/MinIO, CDN

Definición de Terminado (DoD)

  • Upload multi-formato funcional
  • Galería con preview
  • Sistema de carpetas
  • Búsqueda y filtrado avanzado
  • Tags y metadata
  • Compresión automática (Sharp)
  • Conversión de formatos (FFmpeg)
  • Integración YouTube/Vimeo
  • Storage limits y quota
  • Deduplicación
  • Sistema de permisos
  • Tracking de uso
  • CDN configurado
  • Papelera de reciclaje
  • Tests >80% coverage
  • Documentación
  • Video tutorial

Estimación Detallada (6 SP)

Tarea Horas
File uploader 8h
Galería y preview 10h
Sistema de carpetas 8h
Búsqueda y filtros 8h
Tags y metadata 6h
Compresión (Sharp) 8h
Conversión (FFmpeg) 10h
Integraciones externas 8h
Storage management 6h
Deduplicación 6h
Backend API 10h
CDN setup 4h
Testing 10h
Documentación 4h
TOTAL 106h

Presupuesto: $3,400 MXN Duración: 2-3 días


Tags

#ext-006 #media #biblioteca #multimedia #storage #cdn #compresion #s3 #mes-3


Creado: 2025-11-02 Autor: Sistema de Migración - Subagente EXT 4-6 Origen: EP005/US-005-11 + EP010/HU-EP010-03 Compliance: PF-001 (XXX líneas)