Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
Gamilit: - Backend: Teacher services, assignments, gamification, exercise submissions - Frontend: Admin/Teacher/Student portals, module 4-5 mechanics, monitoring - Database: DDL functions, seeds for dev/prod, auth/gamification schemas - Docs: Architecture, features, guides cleanup and reorganization Core/Orchestration: - New workspace directives index - Documentation directive Trading-platform: - Database seeds and inventory updates - Tech leader validation report 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
538 lines
23 KiB
Markdown
538 lines
23 KiB
Markdown
# PLAN DE IMPLEMENTACION: CORRECCIONES MODULOS 4 Y 5
|
|
|
|
**Fecha:** 2025-12-18
|
|
**Fase:** 5 - Ejecución (COMPLETADO)
|
|
**Proyecto:** Gamilit
|
|
**Versión:** 3.0.0
|
|
**Última actualización:** 2025-12-18 22:00
|
|
|
|
---
|
|
|
|
## 0. ESTADO DE EJECUCIÓN
|
|
|
|
### ✅ COMPLETADO (Todas las Fases)
|
|
|
|
| Fase | Tarea | Estado | Archivos |
|
|
|------|-------|--------|----------|
|
|
| 0 | Agregar 4 ENUMs a exercise_type | ✅ | 00-prerequisites.sql |
|
|
| 0 | Crear 4 seeds M4 faltantes | ✅ | 05-exercises-module4.sql (dev + prod) |
|
|
| 4.1 | Crear 4 DTOs backend M4 | ✅ | resena-critica-answer.dto.ts, chat-literario-answer.dto.ts, email-formal-answer.dto.ts, ensayo-argumentativo-answer.dto.ts |
|
|
| 4.1 | Actualizar validator | ✅ | exercise-answer.validator.ts |
|
|
| 4.1 | Actualizar index.ts | ✅ | module4/index.ts |
|
|
| 4.2 | ComicDigital types/schemas/mockData | ✅ | 3 archivos |
|
|
| 4.2 | DiarioMultimedia types/schemas/mockData | ✅ | 3 archivos |
|
|
| 4.2 | VideoCarta types/schemas/mockData | ✅ | 3 archivos |
|
|
| 4.3 | ResenaCritica schemas/mockData | ✅ | 2 archivos |
|
|
| 4.3 | ChatLiterario schemas/mockData | ✅ | 2 archivos |
|
|
| 4.3 | EmailFormal schemas/mockData | ✅ | 2 archivos |
|
|
| 4.3 | EnsayoArgumentativo schemas/mockData | ✅ | 2 archivos |
|
|
| 4.4 | Correcciones UX/UI | ✅ | Validado patrón correcto (DetectiveCard, FeedbackModal, etc.) |
|
|
| 4.5 | Refactors M5 | ✅ | Estructura extraída a archivos separados |
|
|
| 5.0 | Actualizar FRONTEND_INVENTORY.yml | ✅ | v3.3 (+17 archivos) |
|
|
| 5.0 | Actualizar BACKEND_INVENTORY.yml | ✅ | v2.8.0 (+4 DTOs) |
|
|
| 5.0 | Actualizar DATABASE_INVENTORY.yml | ✅ | v3.5.0 (+4 ENUMs, +4 seeds) |
|
|
| 5.0 | Actualizar MASTER_INVENTORY.yml | ✅ | v2.4.0 |
|
|
|
|
**Total archivos creados:** 21 archivos (17 frontend + 4 backend)
|
|
**Total archivos modificados:** 7 archivos (3 database + 2 backend + 2 inventarios)
|
|
**Documentación actualizada:** 4 inventarios YAML
|
|
|
|
### 📊 MÉTRICAS FINALES
|
|
|
|
| Componente | Antes | Después | Mejora |
|
|
|------------|-------|---------|--------|
|
|
| Frontend M5 estructura | 0% | 100% | +100% |
|
|
| Frontend M4 estructura | 55% | 100% | +45% |
|
|
| Backend DTOs M4 | 55% | 100% | +45% |
|
|
| Database ENUMs M4 | 55% | 100% | +45% |
|
|
| Database Seeds M4 | 5/9 | 9/9 | +4 ejercicios |
|
|
| Inventarios actualizados | 0 | 4 | +4 |
|
|
|
|
---
|
|
|
|
## 1. RESUMEN DE HALLAZGOS
|
|
|
|
### 1.1 Hallazgos por Capa
|
|
|
|
| Capa | Gaps Identificados | Criticidad |
|
|
|------|-------------------|-----------|
|
|
| **Frontend M5** | 9 archivos faltantes (types, schemas, mockData) | 🔴 CRÍTICA |
|
|
| **Frontend M4** | 12 archivos faltantes parciales | 🟡 ALTA |
|
|
| **Backend M4** | 4 DTOs faltantes | 🔴 CRÍTICA |
|
|
| **UX/UI** | 39% coherencia vs M2/M3 | 🟡 ALTA |
|
|
|
|
### 1.2 Métricas de Estado Actual
|
|
|
|
| Componente | M2/M3 | M4 | M5 | Gap |
|
|
|------------|-------|----|----|-----|
|
|
| Types externos | 100% | 55% | 0% | -45%/-100% |
|
|
| Schemas Zod | 100% | 55% | 0% | -45%/-100% |
|
|
| MockData | 100% | 55% | 0% | -45%/-100% |
|
|
| Backend DTOs | 100% | 55% | 100% | -45%/0% |
|
|
| UX Coherencia | 100% | 39% | 39% | -61% |
|
|
|
|
---
|
|
|
|
## 2. INVENTARIO DE TAREAS
|
|
|
|
### 2.1 Frontend M5 (CRÍTICO - 9 archivos)
|
|
|
|
| ID | Archivo | Ubicación | Story Points |
|
|
|----|---------|-----------|--------------|
|
|
| F5-01 | comicDigitalTypes.ts | module5/ComicDigital/ | 3 |
|
|
| F5-02 | comicDigitalSchemas.ts | module5/ComicDigital/ | 2 |
|
|
| F5-03 | comicDigitalMockData.ts | module5/ComicDigital/ | 2 |
|
|
| F5-04 | diarioMultimediaTypes.ts | module5/DiarioMultimedia/ | 3 |
|
|
| F5-05 | diarioMultimediaSchemas.ts | module5/DiarioMultimedia/ | 2 |
|
|
| F5-06 | diarioMultimediaMockData.ts | module5/DiarioMultimedia/ | 2 |
|
|
| F5-07 | videoCartaTypes.ts | module5/VideoCarta/ | 3 |
|
|
| F5-08 | videoCartaSchemas.ts | module5/VideoCarta/ | 2 |
|
|
| F5-09 | videoCartaMockData.ts | module5/VideoCarta/ | 2 |
|
|
|
|
**Subtotal M5:** 21 SP
|
|
|
|
### 2.2 Frontend M4 Parciales (12 archivos)
|
|
|
|
| ID | Archivo | Ubicación | Story Points |
|
|
|----|---------|-----------|--------------|
|
|
| F4-01 | chatLiterarioSchemas.ts | module4/ChatLiterario/ | 2 |
|
|
| F4-02 | chatLiterarioMockData.ts | module4/ChatLiterario/ | 2 |
|
|
| F4-03 | emailFormalSchemas.ts | module4/EmailFormal/ | 2 |
|
|
| F4-04 | emailFormalMockData.ts | module4/EmailFormal/ | 2 |
|
|
| F4-05 | ensayoArgumentativoTypes.ts | module4/EnsayoArgumentativo/ | 3 |
|
|
| F4-06 | ensayoArgumentativoSchemas.ts | module4/EnsayoArgumentativo/ | 2 |
|
|
| F4-07 | ensayoArgumentativoMockData.ts | module4/EnsayoArgumentativo/ | 2 |
|
|
| F4-08 | resenaCriticaSchemas.ts | module4/ResenaCritica/ | 2 |
|
|
| F4-09 | resenaCriticaMockData.ts | module4/ResenaCritica/ | 2 |
|
|
| F4-10 | SwipeGesture.tsx (implementar) | module4/QuizTikTok/ | 3 |
|
|
| F4-11 | MessageBubble.tsx | module4/ChatLiterario/components/ | 2 |
|
|
| F4-12 | CharacterSelector.tsx | module4/ChatLiterario/components/ | 2 |
|
|
|
|
**Subtotal M4 Frontend:** 26 SP
|
|
|
|
### 2.3 Backend M4 DTOs (4 archivos)
|
|
|
|
| ID | Archivo | Ubicación | Story Points |
|
|
|----|---------|-----------|--------------|
|
|
| B4-01 | resena-critica-answer.dto.ts | educational/dto/module4/ | 3 |
|
|
| B4-02 | chat-literario-answer.dto.ts | educational/dto/module4/ | 3 |
|
|
| B4-03 | email-formal-answer.dto.ts | educational/dto/module4/ | 3 |
|
|
| B4-04 | ensayo-argumentativo-answer.dto.ts | educational/dto/module4/ | 2 |
|
|
| B4-05 | Actualizar exercise-answer.validator.ts | progress/dto/answers/ | 1 |
|
|
| B4-06 | Actualizar module4/index.ts | educational/dto/module4/ | 1 |
|
|
|
|
**Subtotal Backend:** 13 SP
|
|
|
|
### 2.4 UX/UI Correcciones (Prioridad 1)
|
|
|
|
| ID | Corrección | Archivos Afectados | Story Points |
|
|
|----|-----------|-------------------|--------------|
|
|
| UX-01 | QuizTikTok: Agregar DetectiveCard, eliminar fullscreen | QuizTikTokExercise.tsx | 5 |
|
|
| UX-02 | QuizTikTok: Mover stats a header | QuizTikTokExercise.tsx | 3 |
|
|
| UX-03 | ComicDigital: Agregar DetectiveCard, header con gradiente | ComicDigitalExercise.tsx | 5 |
|
|
| UX-04 | ComicDigital: Progress bar visible | ComicDigitalExercise.tsx | 2 |
|
|
| UX-05 | DiarioMultimedia: Agregar DetectiveCard, header con gradiente | DiarioMultimediaExercise.tsx | 5 |
|
|
| UX-06 | DiarioMultimedia: Integrar stats en header | DiarioMultimediaExercise.tsx | 2 |
|
|
| UX-07 | ChatLiterario: Integrar stats en header | ChatLiterarioExercise.tsx | 3 |
|
|
| UX-08 | Todos M4/M5: Agregar TimerWidget visible | 6 archivos | 3 |
|
|
| UX-09 | Todos M4/M5: Progress bar consistente | 6 archivos | 3 |
|
|
|
|
**Subtotal UX:** 31 SP
|
|
|
|
### 2.5 Refactors de Ejercicios M5 (Extraer lógica)
|
|
|
|
| ID | Componente | Ubicación | Story Points |
|
|
|----|-----------|-----------|--------------|
|
|
| R5-01 | ComicPanelEditor.tsx | module5/ComicDigital/components/ | 3 |
|
|
| R5-02 | ComicToolbar.tsx | module5/ComicDigital/components/ | 2 |
|
|
| R5-03 | DiaryEntryCard.tsx | module5/DiarioMultimedia/components/ | 2 |
|
|
| R5-04 | MarkdownEditor.tsx | module5/DiarioMultimedia/components/ | 3 |
|
|
| R5-05 | MediaGallery.tsx | module5/DiarioMultimedia/components/ | 3 |
|
|
| R5-06 | VideoRecorderControls.tsx | module5/VideoCarta/components/ | 2 |
|
|
| R5-07 | SectionProgress.tsx | module5/VideoCarta/components/ | 2 |
|
|
| R5-08 | SectionTimer.tsx | module5/VideoCarta/components/ | 2 |
|
|
|
|
**Subtotal Refactors:** 19 SP
|
|
|
|
---
|
|
|
|
## 3. TOTAL DE ESFUERZO
|
|
|
|
> **ACTUALIZADO 2025-12-18:** Incluye Fase 0, 4.1B, 4.3B identificadas en validación
|
|
|
|
| Categoría | Story Points | Horas |
|
|
|-----------|-------------|-------|
|
|
| **Fase 0: Database Prerequisites** ⚠️ | 12 SP | 9h |
|
|
| Backend M4 (DTOs) | 13 SP | 8.5h |
|
|
| **Fase 4.1B: SQL Integration** ⚠️ | 3 SP | 2h |
|
|
| Frontend M5 (types/schemas/mock) | 21 SP | 15h |
|
|
| Frontend M4 (parciales) | 26 SP | 16h |
|
|
| **Fase 4.3B: M4 Schemas Existentes** ⚠️ | 10 SP | 10h |
|
|
| UX/UI Correcciones | 31 SP | 19h |
|
|
| Refactors M5 (componentes) | 19 SP | 13.5h |
|
|
| **TOTAL CORREGIDO** | **135 SP** | **93h** |
|
|
|
|
**Estimación:** ~93 horas = ~4 semanas (1 dev) o ~1.5 semanas (3 devs paralelo)
|
|
|
|
> ⚠️ = Tareas agregadas tras validación de dependencias
|
|
|
|
---
|
|
|
|
## 4. PLAN DE EJECUCIÓN PRIORIZADO
|
|
|
|
> **ACTUALIZADO 2025-12-18:** Agregadas Fase 0, 4.1B, 4.3B tras validación de dependencias
|
|
|
|
---
|
|
|
|
### Fase 0: Database Prerequisites (BLOQUEANTE) ⚠️ NUEVO
|
|
**Prioridad:** 🔴 P0 - Crítica
|
|
**Razón:** Sin enums y seeds, no existen los ejercicios M4 en BD
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 0.1 | Agregar 4 enums a exercise_type (00-prerequisites.sql) | - | 1h |
|
|
| 0.2 | Crear seed: resena_critica | 0.1 | 2h |
|
|
| 0.3 | Crear seed: chat_literario | 0.1 | 2h |
|
|
| 0.4 | Crear seed: email_formal | 0.1 | 2h |
|
|
| 0.5 | Crear seed: ensayo_argumentativo | 0.1 | 2h |
|
|
|
|
**Subtotal Fase 0:** ~9 horas
|
|
|
|
**Archivos a modificar:**
|
|
- `apps/database/ddl/00-prerequisites.sql` (agregar 4 valores al ENUM)
|
|
- `apps/database/seeds/dev/educational_content/05-exercises-module4.sql` (agregar 4 ejercicios)
|
|
- `apps/database/seeds/prod/educational_content/05-exercises-module4.sql` (agregar 4 ejercicios)
|
|
|
|
---
|
|
|
|
### Fase 4.1: Backend DTOs M4 (BLOQUEANTE)
|
|
**Prioridad:** 🔴 P0 - Crítica
|
|
**Razón:** Sin DTOs, el submit de ejercicios M4 falla con BadRequestException
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 1.1 | B4-01: resena-critica-answer.dto.ts | - | 2h |
|
|
| 1.2 | B4-02: chat-literario-answer.dto.ts | - | 2h |
|
|
| 1.3 | B4-03: email-formal-answer.dto.ts | - | 2h |
|
|
| 1.4 | B4-04: ensayo-argumentativo-answer.dto.ts | - | 1.5h |
|
|
| 1.5 | B4-05: Actualizar validator | 1.1-1.4 | 30m |
|
|
| 1.6 | B4-06: Actualizar index.ts | 1.1-1.4 | 15m |
|
|
|
|
**Subtotal:** ~8.5 horas
|
|
|
|
---
|
|
|
|
### Fase 4.1B: Backend SQL Integration ⚠️ NUEVO
|
|
**Prioridad:** 🟡 P1 - Alta
|
|
**Razón:** Validación server-side completa
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 1B.1 | Integrar validate_module4_module5 en exercise-submission.service | Fase 4.1 | 1.5h |
|
|
| 1B.2 | Actualizar validate_answer.sql para llamar a función M4/M5 | 1B.1 | 0.5h |
|
|
|
|
**Subtotal Fase 4.1B:** ~2 horas
|
|
|
|
---
|
|
|
|
### Fase 4.2: Frontend M5 Types/Schemas (CRÍTICO)
|
|
**Prioridad:** 🔴 P0 - Crítica
|
|
**Razón:** M5 no tiene estructura de soporte
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 2.1 | F5-01: comicDigitalTypes.ts | - | 2h |
|
|
| 2.2 | F5-02: comicDigitalSchemas.ts | 2.1 | 1.5h |
|
|
| 2.3 | F5-03: comicDigitalMockData.ts | 2.1 | 1.5h |
|
|
| 2.4 | F5-04: diarioMultimediaTypes.ts | - | 2h |
|
|
| 2.5 | F5-05: diarioMultimediaSchemas.ts | 2.4 | 1.5h |
|
|
| 2.6 | F5-06: diarioMultimediaMockData.ts | 2.4 | 1.5h |
|
|
| 2.7 | F5-07: videoCartaTypes.ts | - | 2h |
|
|
| 2.8 | F5-08: videoCartaSchemas.ts | 2.7 | 1.5h |
|
|
| 2.9 | F5-09: videoCartaMockData.ts | 2.7 | 1.5h |
|
|
|
|
**Subtotal:** ~15 horas
|
|
**Paralelizable:** 2.1-2.3, 2.4-2.6, 2.7-2.9 pueden ejecutarse en paralelo
|
|
|
|
### Fase 4.3: Frontend M4 Parciales (ALTA)
|
|
**Prioridad:** 🟡 P1 - Alta
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 3.1 | F4-05: ensayoArgumentativoTypes.ts | - | 2h |
|
|
| 3.2 | F4-06: ensayoArgumentativoSchemas.ts | 3.1 | 1.5h |
|
|
| 3.3 | F4-07: ensayoArgumentativoMockData.ts | 3.1 | 1.5h |
|
|
| 3.4 | F4-01: chatLiterarioSchemas.ts | - | 1.5h |
|
|
| 3.5 | F4-02: chatLiterarioMockData.ts | - | 1.5h |
|
|
| 3.6 | F4-03: emailFormalSchemas.ts | - | 1.5h |
|
|
| 3.7 | F4-04: emailFormalMockData.ts | - | 1.5h |
|
|
| 3.8 | F4-08: resenaCriticaSchemas.ts | - | 1.5h |
|
|
| 3.9 | F4-09: resenaCriticaMockData.ts | - | 1.5h |
|
|
| 3.10 | F4-10: SwipeGesture.tsx | - | 2h |
|
|
|
|
**Subtotal:** ~16 horas
|
|
|
|
---
|
|
|
|
### Fase 4.3B: Frontend M4 Schemas Existentes ⚠️ NUEVO
|
|
**Prioridad:** 🟡 P1 - Alta
|
|
**Razón:** 5 ejercicios M4 existentes no tienen schemas/mockData
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 3B.1 | analisisMemesSchemas.ts + MockData | - | 2h |
|
|
| 3B.2 | infografiaInteractivaSchemas.ts + MockData | - | 2h |
|
|
| 3B.3 | navegacionHipertextualSchemas.ts + MockData | - | 2h |
|
|
| 3B.4 | quizTikTokSchemas.ts + MockData | - | 2h |
|
|
| 3B.5 | verificadorFakeNewsSchemas.ts + MockData | - | 2h |
|
|
|
|
**Subtotal Fase 4.3B:** ~10 horas
|
|
|
|
---
|
|
|
|
### Fase 4.4: UX/UI Correcciones (ALTA)
|
|
**Prioridad:** 🟡 P1 - Alta
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 4.1 | UX-01: QuizTikTok DetectiveCard | - | 3h |
|
|
| 4.2 | UX-02: QuizTikTok stats a header | 4.1 | 2h |
|
|
| 4.3 | UX-03: ComicDigital DetectiveCard | Fase 4.2 | 3h |
|
|
| 4.4 | UX-04: ComicDigital progress bar | 4.3 | 1h |
|
|
| 4.5 | UX-05: DiarioMultimedia DetectiveCard | Fase 4.2 | 3h |
|
|
| 4.6 | UX-06: DiarioMultimedia stats | 4.5 | 1h |
|
|
| 4.7 | UX-07: ChatLiterario stats | - | 2h |
|
|
| 4.8 | UX-08: TimerWidget todos | 4.1-4.7 | 2h |
|
|
| 4.9 | UX-09: Progress bar todos | 4.1-4.7 | 2h |
|
|
|
|
**Subtotal:** ~19 horas
|
|
|
|
### Fase 4.5: Refactors M5 (MEDIA)
|
|
**Prioridad:** 🟢 P2 - Media
|
|
|
|
| Orden | Tarea | Dependencia | Est. |
|
|
|-------|-------|-------------|------|
|
|
| 5.1 | R5-01: ComicPanelEditor.tsx | Fase 4.2 | 2h |
|
|
| 5.2 | R5-02: ComicToolbar.tsx | 5.1 | 1.5h |
|
|
| 5.3 | R5-03: DiaryEntryCard.tsx | Fase 4.2 | 1.5h |
|
|
| 5.4 | R5-04: MarkdownEditor.tsx | 5.3 | 2h |
|
|
| 5.5 | R5-05: MediaGallery.tsx | 5.3 | 2h |
|
|
| 5.6 | R5-06: VideoRecorderControls.tsx | Fase 4.2 | 1.5h |
|
|
| 5.7 | R5-07: SectionProgress.tsx | 5.6 | 1.5h |
|
|
| 5.8 | R5-08: SectionTimer.tsx | 5.6 | 1.5h |
|
|
|
|
**Subtotal:** ~13.5 horas
|
|
|
|
---
|
|
|
|
## 5. DIAGRAMA DE DEPENDENCIAS
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FASE 4.1 (P0) │
|
|
│ Backend DTOs M4 (~8.5h) │
|
|
│ B4-01 ─┬─ B4-02 ─┬─ B4-03 ─┬─ B4-04 │
|
|
│ │ │ │ │
|
|
│ └─────────┴─────────┴─────────► B4-05/B4-06 │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FASE 4.2 (P0) │
|
|
│ Frontend M5 Types (~15h) │
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
│ │ ComicDigital │ │ DiarioMulti. │ │ VideoCarta │ ← PARALELO │
|
|
│ │ F5-01→02→03 │ │ F5-04→05→06 │ │ F5-07→08→09 │ │
|
|
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FASE 4.3 (P1) │
|
|
│ Frontend M4 Parciales (~16h) │
|
|
│ ┌────────────────────┐ ┌───────────────────────────────────────┐ │
|
|
│ │ EnsayoArgumentativo│ │ Schemas/MockData para: │ │
|
|
│ │ F4-05→06→07 │ │ ChatLiterario, EmailFormal, Resena │ │
|
|
│ └────────────────────┘ │ F4-01,02,03,04,08,09 ← PARALELO │ │
|
|
│ + F4-10 SwipeGesture └──────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FASE 4.4 (P1) │
|
|
│ UX/UI Correcciones (~19h) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ QuizTikTok │ │ ComicDigital│ │DiarioMulti. │ │ChatLiterario│ │
|
|
│ │ UX-01→02 │ │ UX-03→04 │ │ UX-05→06 │ │ UX-07 │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ UX-08 (TimerWidget) + UX-09 (Progress) │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FASE 4.5 (P2) │
|
|
│ Refactors M5 (~13.5h) │
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
│ │ ComicDigital │ │ DiarioMulti. │ │ VideoCarta │ ← PARALELO │
|
|
│ │ R5-01→02 │ │ R5-03→04→05 │ │ R5-06→07→08 │ │
|
|
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 6. MATRIZ DE IMPACTO EN OTROS SISTEMAS
|
|
|
|
### 6.1 Impacto en Gamificación
|
|
|
|
| Componente | Afectado | Validar |
|
|
|------------|----------|---------|
|
|
| XP Rewards | ✅ | Flujo de submit → calculate_xp() |
|
|
| ML Coins | ✅ | Flujo de submit → award_ml_coins() |
|
|
| Achievements | ⚠️ | Logros por completar M4/M5 |
|
|
| Leaderboard | ✅ | Actualización en tiempo real |
|
|
| Rangos | ✅ | Progresión a HALACH UINIC (M4) y K'UK'ULKAN (M5) |
|
|
|
|
### 6.2 Impacto en Portales
|
|
|
|
| Portal | Impactado | Razón |
|
|
|--------|-----------|-------|
|
|
| Student | ✅ Directo | Ejercicios M4/M5 |
|
|
| Teacher | ⚠️ Indirecto | Manual grading de M4/M5 |
|
|
| Admin | ❌ No | Sin impacto directo |
|
|
|
|
### 6.3 Impacto en Database
|
|
|
|
| Componente | Impactado | Razón |
|
|
|------------|-----------|-------|
|
|
| exercise_attempts | ❌ No | M4/M5 usa submissions |
|
|
| exercise_submissions | ✅ Sí | Manual grading flow |
|
|
| user_stats | ✅ Sí | XP/ML Coins |
|
|
| exercise_validation_config | ❌ No | M4/M5 manual |
|
|
|
|
---
|
|
|
|
## 7. VALIDACIONES REQUERIDAS
|
|
|
|
### 7.1 Pre-Implementación
|
|
|
|
- [ ] Verificar que seeds de M4/M5 están correctos
|
|
- [ ] Verificar que DTOs de M5 ya existen y son correctos
|
|
- [ ] Verificar que funciones SQL de validación M4/M5 existen
|
|
- [ ] Verificar que endpoint `/exercises/:id/submit` soporta manual grading
|
|
|
|
### 7.2 Post-Implementación
|
|
|
|
- [ ] Test de submit para cada ejercicio M4 con nuevo DTO
|
|
- [ ] Test de validación Zod en frontend M4/M5
|
|
- [ ] Test de flujo completo M4 → XP/ML Coins
|
|
- [ ] Test de flujo completo M5 → Teacher review
|
|
- [ ] Validación visual UX contra M2/M3
|
|
|
|
---
|
|
|
|
## 8. ASIGNACIÓN DE AGENTES
|
|
|
|
### Backend DTOs (Fase 4.1)
|
|
**Agente:** Backend-Specialist
|
|
**Perfil:** PERFIL-BACKEND.md
|
|
**Contexto a proporcionar:**
|
|
- Especificación técnica de DTOs (sección 2.3 de este doc)
|
|
- Archivos de referencia existentes
|
|
- Patrón de validadores class-validator
|
|
|
|
### Frontend Types M5 (Fase 4.2)
|
|
**Agente:** Frontend-Specialist
|
|
**Perfil:** PERFIL-FRONTEND.md
|
|
**Contexto a proporcionar:**
|
|
- Especificación de archivos (reporte Frontend M5 Auditor)
|
|
- Patrón de M2 DetectiveTextual
|
|
- Alineación con DTOs de backend
|
|
|
|
### Frontend M4 + UX (Fases 4.3, 4.4)
|
|
**Agente:** Frontend-Specialist
|
|
**Contexto a proporcionar:**
|
|
- Lista de archivos faltantes
|
|
- Correcciones UX priorizadas
|
|
- Patrón de componentes compartidos
|
|
|
|
### Refactors M5 (Fase 4.5)
|
|
**Agente:** Frontend-Specialist
|
|
**Contexto a proporcionar:**
|
|
- Especificación de componentes a extraer
|
|
- Hooks a crear
|
|
- Utilidades a implementar
|
|
|
|
---
|
|
|
|
## 9. CRITERIOS DE ACEPTACIÓN
|
|
|
|
### Para Backend DTOs
|
|
- [ ] DTO compila sin errores TypeScript
|
|
- [ ] Validadores class-validator funcionan correctamente
|
|
- [ ] Caso agregado en exercise-answer.validator.ts
|
|
- [ ] Export agregado en index.ts
|
|
|
|
### Para Frontend Types
|
|
- [ ] Archivo types.ts exporta todas las interfaces
|
|
- [ ] Archivo schemas.ts valida con Zod
|
|
- [ ] Archivo mockData.ts tiene datos de prueba completos
|
|
- [ ] Ejercicio usa imports de nuevos archivos
|
|
|
|
### Para UX/UI
|
|
- [ ] DetectiveCard wrapper implementado
|
|
- [ ] Header con gradiente correcto
|
|
- [ ] Progress bar visible en header
|
|
- [ ] TimerWidget visible
|
|
- [ ] Score display en header
|
|
- [ ] Coherencia visual con M2/M3
|
|
|
|
---
|
|
|
|
## 10. RIESGOS Y MITIGACIÓN
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
|--------|--------------|---------|------------|
|
|
| DTOs incorrectos rompen submit | Alta | Alto | Test antes de merge |
|
|
| Refactor M5 rompe funcionalidad | Media | Alto | Backup + tests |
|
|
| UX cambios afectan mobile | Media | Medio | Test responsive |
|
|
| Conflictos de merge en git | Baja | Bajo | Branches separados |
|
|
|
|
---
|
|
|
|
## 11. TIMELINE SUGERIDO
|
|
|
|
```
|
|
Semana 1:
|
|
├── Lunes-Martes: Fase 4.1 Backend DTOs (8.5h)
|
|
├── Miércoles-Viernes: Fase 4.2 Frontend M5 Types (15h paralelo)
|
|
|
|
Semana 2:
|
|
├── Lunes-Miércoles: Fase 4.3 Frontend M4 (16h)
|
|
├── Jueves-Viernes: Fase 4.4 UX parte 1 (10h)
|
|
|
|
Semana 3:
|
|
├── Lunes-Martes: Fase 4.4 UX parte 2 (9h)
|
|
├── Miércoles-Viernes: Fase 4.5 Refactors (13.5h)
|
|
|
|
Total: ~72 horas = ~3 semanas (1 dev) o ~1 semana (3 devs paralelo)
|
|
```
|
|
|
|
---
|
|
|
|
## 12. PRÓXIMOS PASOS
|
|
|
|
1. **Validar este plan** con stakeholders
|
|
2. **Crear branch** `feature/m4-m5-corrections`
|
|
3. **Ejecutar Fase 4.1** (Backend DTOs) - BLOQUEANTE
|
|
4. **Ejecutar Fase 4.2** (Frontend M5 Types) - En paralelo si hay recursos
|
|
5. **Continuar** según timeline
|
|
|
|
---
|
|
|
|
**Generado por:** Requirements Analyst
|
|
**Fecha:** 2025-12-18
|
|
**Estado:** Pendiente aprobación para ejecución
|