Some checks failed
CI Pipeline / changes (push) Has been cancelled
CI Pipeline / core (push) Has been cancelled
CI Pipeline / trading-backend (push) Has been cancelled
CI Pipeline / trading-data-service (push) Has been cancelled
CI Pipeline / trading-frontend (push) Has been cancelled
CI Pipeline / erp-core (push) Has been cancelled
CI Pipeline / erp-mecanicas (push) Has been cancelled
CI Pipeline / gamilit-backend (push) Has been cancelled
CI Pipeline / gamilit-frontend (push) Has been cancelled
## 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>
348 lines
12 KiB
Markdown
348 lines
12 KiB
Markdown
# 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:**
|
|
```markdown
|
|
# 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.md`
|
|
- `docs/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:**
|
|
1. Verificar si ya existen rúbricas en `RubricEvaluator.tsx`
|
|
2. Si no existen, crear configuraciones basadas en las guías de pruebas
|
|
3. 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:
|
|
1. El scoring automático calcula correctamente (0/33/67/100)
|
|
2. XP y ML Coins se otorgan en primer acierto
|
|
3. El resultado se refleja en portal de teacher
|
|
|
|
**Archivos a verificar:**
|
|
- `apps/backend/src/modules/educational/services/exercises.service.ts`
|
|
- `apps/frontend/src/features/mechanics/module4/QuizTikTok/QuizTikTokExercise.tsx`
|
|
|
|
**Tests requeridos:**
|
|
```typescript
|
|
// 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.sql`
|
|
- `apps/backend/src/modules/gamification/services/ml-coins.service.ts`
|
|
|
|
**Comportamiento esperado:**
|
|
```sql
|
|
-- Si usuario tiene rango Nacom (1.10x multiplicador):
|
|
-- ML Coins base: 50
|
|
-- ML Coins finales: 50 * 1.10 = 55
|
|
```
|
|
|
|
**Si no implementado, agregar:**
|
|
```sql
|
|
-- 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:**
|
|
1. **Local Storage** (desarrollo): `/uploads/videos/`
|
|
2. **S3/MinIO** (producción): Bucket dedicado
|
|
3. **Supabase Storage** (si aplica)
|
|
|
|
**Configuración requerida:**
|
|
```typescript
|
|
// 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.md`
|
|
- `docs/00-vision-general/DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md` (verificar)
|
|
|
|
### Frontend
|
|
- `apps/frontend/src/apps/teacher/components/grading/RubricEvaluator.tsx`
|
|
- `apps/frontend/src/features/mechanics/module4/QuizTikTok/QuizTikTokExercise.tsx`
|
|
|
|
### Backend
|
|
- `apps/backend/src/modules/gamification/services/ml-coins.service.ts`
|
|
- `apps/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
|
|
|
|
1. **Priorizar COR-001 y COR-002** ya que la documentación incorrecta puede causar confusión en todo el equipo.
|
|
|
|
2. **COR-003 (Rúbricas)** es crítico para que los docentes puedan evaluar consistentemente los ejercicios de M4-M5.
|
|
|
|
3. **COR-005 (E2E)** debe ejecutarse DESPUÉS de las correcciones previas para validar el flujo completo.
|
|
|
|
4. **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)
|