## Backend - fix(ranks): Reordenar rutas en RanksController para evitar conflictos 404 - feat(gamification): Agregar MayaRankEntity al modulo - feat(ml-coins): Expandir funcionalidad del servicio - feat(teacher): Mejoras en dashboard, mensajes y reportes - feat(entities): Nuevas entidades admin, educational, progress, social ## Frontend - feat(gamificationAPI): API completa para ranks con endpoints - feat(RubricEvaluator): Nuevo componente para evaluacion docente - refactor(admin): Mejoras en hooks y paginas - refactor(teacher): Mejoras en paginas del portal ## Database - fix(initialize_user_stats): Agregar is_current y achieved_at a user_ranks - fix(notifications-policies): Corregir RLS con JOIN correcto - feat(friendships): Agregar columna status con estados - sync(seeds): Homologacion completa DEV <-> PROD ## Docs & Orchestration - docs(api): Actualizar API-TEACHER-MODULE.md - docs(frontend): COMPONENTES-INVENTARIO.md - docs(database): VIEWS-INVENTARIO.md, VALIDACION-DDL-SEEDS - Reportes de analisis y validacion 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 KiB
PLAN DE IMPLEMENTACIONES Y CORRECCIONES
Módulos 3, 4 y 5 - Gamilit Platform
Fecha: 2025-12-23 Analista: Requirements-Analyst Versión: 1.0 Estado: LISTO PARA VALIDACIÓN
RESUMEN DEL PLAN
Hallazgos Clave del Análisis
| Aspecto | Estado | Nota |
|---|---|---|
| Implementación de código | ✅ COMPLETO | Frontend, Backend, Database |
| Validador M4-M5 | ✅ IMPLEMENTADO | Función SQL funcional |
| Rangos Maya | ✅ CORRECTO v2.1 | K'uk'ulkan desde 1,900 XP |
| Seeds de ejercicios | ✅ COMPLETOS | M3, M4, M5 con contenido |
| Documentación | ⚠️ DESACTUALIZADA | VISION.md dice "BACKLOG" |
| Rúbricas Teacher | ⚠️ VERIFICAR | Posible ajuste para M4-M5 |
Esfuerzo Estimado
| Prioridad | Correcciones | Horas Estimadas |
|---|---|---|
| P0 - Crítico | 2 | 2-4 horas |
| P1 - Alto | 3 | 8-12 horas |
| P2 - Medio | 2 | 4-6 horas |
| TOTAL | 7 | 14-22 horas |
CORRECCIONES P0 (CRÍTICAS)
COR-001: Actualizar Documentación de Visión
Archivo: docs/00-vision-general/VISION.md
Problema: La documentación dice que M4 y M5 están en "BACKLOG - NO IMPLEMENTADOS" cuando en realidad están completamente implementados.
Corrección:
# ANTES:
## 5. SISTEMA MODULAR PROGRESIVO
| Módulo 4 | 5 | Lectura Digital y Multimodal | BACKLOG |
| Módulo 5 | 3 | Producción y Expresión Lectora | BACKLOG |
# DESPUÉS:
## 5. SISTEMA MODULAR PROGRESIVO
| Módulo 4 | 5 | Lectura Digital y Multimodal | ✅ IMPLEMENTADO |
| Módulo 5 | 3 | Producción y Expresión Lectora | ✅ IMPLEMENTADO |
Responsable: Documentation-Agent Esfuerzo: 1 hora Archivos a modificar:
docs/00-vision-general/VISION.mddocs/00-vision-general/RESUMEN-ACTUAL.md(si existe)
COR-002: Verificar Consistencia de Documentación XP
Problema: Algunas guías de prueba mencionan umbrales de XP distintos a los configurados en DB.
Verificación Requerida:
| Documento | Valor | DB (v2.1) | Estado |
|---|---|---|---|
| GUIA-PRUEBAS-MODULO5 | "500 XP = K'uk'ulkan" | 1,900 XP | ⚠️ CONFUSO |
| DocumentoDeDiseño v6.1 | ? | 1,900 XP | VERIFICAR |
Corrección:
- Revisar todos los documentos que mencionen umbrales de XP
- Estandarizar referencias a:
- Ajaw: 0-499 XP
- Nacom: 500-999 XP
- Ah K'in: 1,000-1,499 XP
- Halach Uinic: 1,500-1,899 XP
- K'uk'ulkan: 1,900+ XP
Responsable: Documentation-Agent Esfuerzo: 1-2 horas
CORRECCIONES P1 (ALTAS)
COR-003: Configurar Rúbricas Específicas para M4-M5 en RubricEvaluator
Archivo: apps/frontend/src/apps/teacher/components/grading/RubricEvaluator.tsx
Problema: El RubricEvaluator tiene rúbricas genéricas pero puede necesitar configuraciones específicas para los 8 tipos de ejercicios de M4-M5.
Tipos que requieren rúbricas:
Módulo 4:
| Tipo | Rúbrica Necesaria | Estado |
|---|---|---|
verificador_fake_news |
Precisión de veredictos, calidad de evidencia | VERIFICAR |
infografia_interactiva |
Comprensión de datos, secciones exploradas | VERIFICAR |
quiz_tiktok |
N/A (auto-calificable) | ✅ OK |
navegacion_hipertextual |
Eficiencia de navegación, información sintetizada | VERIFICAR |
analisis_memes |
Interpretación de elementos, análisis cultural | VERIFICAR |
Módulo 5:
| Tipo | Rúbrica Necesaria | Estado |
|---|---|---|
diario_multimedia |
Precisión histórica, profundidad emocional, creatividad | VERIFICAR |
comic_digital |
Narrativa visual, diálogos, arco dramático | VERIFICAR |
video_carta |
Autenticidad de voz, mensaje, estructura | VERIFICAR |
Implementación:
- Verificar si ya existen rúbricas en
RubricEvaluator.tsx - Si no existen, crear configuraciones basadas en las guías de pruebas
- Cada rúbrica debe incluir:
- Criterios con pesos (%)
- Niveles de evaluación (0-25, 26-50, 51-75, 76-100)
- Templates de feedback
Responsable: Frontend-Agent Esfuerzo: 4-6 horas
COR-004: Verificar Integración de Quiz TikTok con Gamificación
Problema: Quiz TikTok (4.3) es el único ejercicio auto-calificable de M4. Verificar que:
- El scoring automático calcula correctamente (0/33/67/100)
- XP y ML Coins se otorgan en primer acierto
- El resultado se refleja en portal de teacher
Archivos a verificar:
apps/backend/src/modules/educational/services/exercises.service.tsapps/frontend/src/features/mechanics/module4/QuizTikTok/QuizTikTokExercise.tsx
Tests requeridos:
// Test Case 1: 3/3 correctas → 100 puntos, XP otorgado
// Test Case 2: 2/3 correctas → 67 puntos, XP proporcional
// Test Case 3: 0/3 correctas → 0 puntos, sin XP
// Test Case 4: Segundo intento correcto → sin XP (anti-farming)
Responsable: Backend-Agent / QA-Agent Esfuerzo: 2-3 horas
COR-005: Implementar Pruebas E2E para Flujo Completo
Flujo a probar:
1. Estudiante abre ejercicio M4/M5
2. Completa ejercicio
3. Envía respuesta
4. Sistema valida estructura (validate_module4_module5_answer)
5. Sistema crea ExerciseAttempt/ExerciseSubmission
6. Triggers actualizan XP, ML Coins, misiones
7. Docente ve respuesta en ReviewPanel
8. Docente califica con rúbrica
9. Sistema otorga puntuación final
10. Estudiante ve feedback
Casos de prueba:
| ID | Escenario | Ejercicio | Resultado Esperado |
|---|---|---|---|
| E2E-M4-01 | Verificador FakeNews - Respuesta válida | 4.1 | Guardado, pendiente revisión |
| E2E-M4-02 | Quiz TikTok - 3/3 correctas | 4.3 | 100 pts, XP otorgado inmediato |
| E2E-M4-03 | Análisis Memes - Estructura inválida | 4.5 | Error de validación |
| E2E-M5-01 | Diario Multimedia - 3 entradas | 5.1 | Guardado, 500 XP pendiente |
| E2E-M5-02 | Video Carta - Solo script | 5.3 | Guardado, pendiente revisión |
| E2E-M5-03 | Docente califica M5 | 5.1 | XP y ML Coins otorgados |
Responsable: QA-Agent Esfuerzo: 4-6 horas
CORRECCIONES P2 (MEDIAS)
COR-006: Verificar Multiplicador ML Coins por Rango
Problema: El análisis indica que el multiplicador de ML Coins por rango podría no estar implementado. Actualmente solo XP tiene multiplicador.
Verificar en:
apps/database/ddl/schemas/gamification_system/functions/award_ml_coins.sqlapps/backend/src/modules/gamification/services/ml-coins.service.ts
Comportamiento esperado:
-- Si usuario tiene rango Nacom (1.10x multiplicador):
-- ML Coins base: 50
-- ML Coins finales: 50 * 1.10 = 55
Si no implementado, agregar:
-- En award_ml_coins:
SELECT xp_multiplier INTO v_multiplier
FROM gamification_system.maya_ranks
WHERE rank_name = (
SELECT current_rank FROM gamification_system.user_stats WHERE user_id = p_user_id
);
v_final_amount := FLOOR(p_amount * v_multiplier);
Responsable: Database-Agent Esfuerzo: 2-3 horas
COR-007: Configurar Storage para Video Upload (M5)
Problema: Video-Carta (5.3) permite subir videos pero requiere configuración de storage.
Opciones:
- Local Storage (desarrollo):
/uploads/videos/ - S3/MinIO (producción): Bucket dedicado
- Supabase Storage (si aplica)
Configuración requerida:
// En backend:
upload: {
maxFileSize: 100 * 1024 * 1024, // 100MB
allowedMimeTypes: ['video/mp4', 'video/webm', 'video/mov'],
destination: process.env.VIDEO_UPLOAD_PATH || './uploads/videos'
}
Responsable: Infra-Agent / Backend-Agent Esfuerzo: 2-3 horas
MATRIZ DE DEPENDENCIAS
┌─────────────────────────────────────────────────────────────────┐
│ COR-001 (Docs VISION) │
│ ↓ │
│ COR-002 (Docs XP) ──────────────────────────────────────────→ │
│ ↓ │
│ COR-003 (Rúbricas) ← PUEDE PARALELO CON COR-004/005 │
│ │
│ COR-004 (Quiz TikTok) ─────→ COR-005 (E2E Tests) │
│ │
│ COR-006 (ML Coins Mult) ← INDEPENDIENTE │
│ │
│ COR-007 (Video Storage) ← INDEPENDIENTE │
└─────────────────────────────────────────────────────────────────┘
ORDEN DE EJECUCIÓN RECOMENDADO
Sprint 1 (Inmediato)
| Orden | ID | Descripción | Paralelo |
|---|---|---|---|
| 1 | COR-001 | Actualizar VISION.md | NO |
| 2 | COR-002 | Verificar docs XP | NO |
| 3a | COR-003 | Rúbricas M4-M5 | SÍ con 3b |
| 3b | COR-004 | Quiz TikTok | SÍ con 3a |
Sprint 2
| Orden | ID | Descripción | Paralelo |
|---|---|---|---|
| 4 | COR-005 | Tests E2E | NO (depende de 3a, 3b) |
| 5a | COR-006 | ML Coins Mult | SÍ con 5b |
| 5b | COR-007 | Video Storage | SÍ con 5a |
ARCHIVOS AFECTADOS (RESUMEN)
Documentación
docs/00-vision-general/VISION.mddocs/00-vision-general/DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md(verificar)
Frontend
apps/frontend/src/apps/teacher/components/grading/RubricEvaluator.tsxapps/frontend/src/features/mechanics/module4/QuizTikTok/QuizTikTokExercise.tsx
Backend
apps/backend/src/modules/gamification/services/ml-coins.service.tsapps/backend/src/modules/educational/services/exercises.service.ts
Database
apps/database/ddl/schemas/gamification_system/functions/award_ml_coins.sql
Infraestructura
.env(VIDEO_UPLOAD_PATH)- Configuración de S3/MinIO (si aplica)
CRITERIOS DE ACEPTACIÓN
Para cada corrección:
| ID | Criterio | Verificación |
|---|---|---|
| COR-001 | VISION.md actualizado con estado correcto | Revisión manual |
| COR-002 | Todos los docs usan mismos umbrales XP | Grep "K'uk'ulkan" en docs |
| COR-003 | Rúbricas configuradas para 7 tipos M4-M5 | Review de código |
| COR-004 | Quiz TikTok otorga XP correctamente | Test automatizado |
| COR-005 | Tests E2E pasando para 6 escenarios | CI/CD verde |
| COR-006 | ML Coins con multiplicador por rango | Test SQL |
| COR-007 | Videos se pueden subir y almacenar | Test manual |
RIESGOS IDENTIFICADOS
| Riesgo | Probabilidad | Impacto | Mitigación |
|---|---|---|---|
| Rúbricas inconsistentes con guías de prueba | Media | Alto | Validar contra GUIA-PRUEBAS antes de implementar |
| Quiz TikTok con cálculo incorrecto | Baja | Alto | Tests unitarios extensivos |
| Storage no configurado en producción | Media | Medio | Documentar requisitos en README |
| Conflictos de merge por cambios en docs | Baja | Bajo | Comunicar cambios al equipo |
NOTAS FINALES
-
Priorizar COR-001 y COR-002 ya que la documentación incorrecta puede causar confusión en todo el equipo.
-
COR-003 (Rúbricas) es crítico para que los docentes puedan evaluar consistentemente los ejercicios de M4-M5.
-
COR-005 (E2E) debe ejecutarse DESPUÉS de las correcciones previas para validar el flujo completo.
-
COR-006 y COR-007 son mejoras opcionales que pueden implementarse en un sprint posterior si el tiempo es limitado.
Documento generado: 2025-12-23 Estado: FASE 3 COMPLETA - Listo para Fase 4 (Validación)