workspace/projects/gamilit/docs/03-fase-extensiones/EXT-002-admin-extendido/historias-usuario/US-AE-003-content-management.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

3.5 KiB

HU-EP010-03: Gestión de Contenido

Información General

Campo Valor
ID US-AE-003
Épica EXT-002 - Admin Extendido
Título Gestión y Moderación de Contenido
Prioridad Media (P2)
Story Points 16 SP
Estado COMPLETED (95%)
Sprint Sprint 3
Duración Estimada 4 días
Duración Real 0.25h (FE-059 Day 6)
Fecha Implementación 2025-11-15

Historia de Usuario

Como super admin o content moderator Quiero revisar, aprobar y rechazar contenido creado por profesores/comunidad Para mantener calidad y seguridad del contenido de la plataforma


Endpoints API (6 endpoints)

  1. GET /api/admin/content/exercises/pending - Lista ejercicios pendientes de aprobación
  2. POST /api/admin/content/exercises/:id/approve - Aprueba ejercicio
  3. POST /api/admin/content/exercises/:id/reject - Rechaza ejercicio (requiere reason)
  4. GET /api/admin/content/media - Lista archivos multimedia del sistema
  5. DELETE /api/admin/content/media/:id - Elimina archivo multimedia
  6. POST /api/admin/content/version - Crea versión de contenido (rollback/versioning)

Middleware: authenticateJWTrequireSuperAdminadminRateLimitauditAdminAction Rate Limit: 30 req/min


Criterios de Aceptación (Resumidos)

Funcionales

  • ✓ Listar pending: Ejercicios/lessons creados por teachers esperando aprobación
  • ✓ Ver preview: Renderizar ejercicio completo antes de aprobar
  • ✓ Approve: Cambiar status a 'approved', publicar en catálogo
  • ✓ Reject: Cambiar status a 'rejected', requiere rejection_reason, notificar creator
  • ✓ Media list: Ver archivos (images, videos) con size, uploader, date
  • ✓ Delete media: Remover archivos inapropiados/duplicados
  • ✓ Versioning: Crear snapshots de contenido para rollback
  • ✓ Audit logging: Todas las acciones se loguean

No Funcionales

  • ✓ Response time p95 <400ms (preview puede ser pesado)
  • ✓ Solo role='super_admin' o 'content_moderator'
  • ✓ Rate limiting: 30 req/min
  • ✓ Test coverage >85%

Definición de Hecho (DoD)

  • 5/6 endpoints implementados (versioning básico)
  • Frontend: ContentModerationQueue, ExercisePreview, Approve/Reject modals, MediaGallery
  • ⚠️ Tests unitarios >85% (pendiente - deuda técnica)
  • ⚠️ Tests E2E para flujos de moderación (pendiente - deuda técnica)
  • Audit logging funcionando
  • Documentación API completa

Referencias de Implementación

Archivos Clave

  • Hook: apps/admin/hooks/useContentManagement.ts (400+ líneas)
  • Página: apps/admin/pages/AdminContentPage.tsx (450+ líneas)
  • API Client: apps/admin/services/adminAPI.ts (content category)
  • Types: apps/admin/types/content.types.ts
  • Components: apps/admin/components/content/ (ContentTable, ExercisePreview, ApprovalModal, etc.)

Documentación

  • Implementación: FE-059 Day 6 (2025-11-15)
  • Resumen: /orchestration/frontend/FE-059/06-RESUMEN-DIA-6.md
  • Mapeo US: /orchestration/frontend/FE-059/20-MAPEO-US-IMPLEMENTACION.md

Notas de Implementación

  • Versioning de contenido está implementado de forma básica
  • Puede requerir ampliación en sprint futuro para snapshot completo
  • Por ahora soporta versionado simple de metadatos

Referencia API: /docs/02-especificaciones-tecnicas/apis/API-REFERENCE.md (líneas 2161-2167) Última actualización: 2025-11-19 (Estado actualizado a COMPLETED 95%) Creación original: 2025-10-28