Analisis exhaustivo comparando documentacion con codigo real. ## Documentacion actualizada: - FEATURES-IMPLEMENTADAS.md: Metricas reales (76 controllers, 103 services, 497 componentes) - docs/README.md: Estadisticas actualizadas - API.md: Secciones Teacher Portal API y Social Features ## Documentacion nueva: - API-TEACHER-MODULE.md: 50+ endpoints del modulo Teacher - docs/frontend/student/README.md: 24 paginas documentadas - TABLAS-NUEVAS-2025-12.md: 6 tablas nuevas (parent_*, user_purchases, teacher_interventions) ## Limpieza de codigo: - Eliminados archivos huerfanos en student/pages/admin/ (no importados) ## Hallazgos: - Patron Component/Page en Teacher es arquitectura intencional (no duplicados) - admin/pages/ tiene versiones completas y activas 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8.8 KiB
PLAN DE CORRECCIONES: CODIGO
Proyecto: GAMILIT - Plataforma Educativa Gamificada Fecha: 2025-12-23 Fase: 3 - Planeacion de Implementaciones Basado en: 14-RESUMEN-GAPS-IDENTIFICADOS.md
RESUMEN EJECUTIVO
| Prioridad | Correcciones | Esfuerzo | Riesgo |
|---|---|---|---|
| P0 - Critica | 2 | 4h | Alto |
| P1 - Alta | 3 | 6h | Medio |
| P2 - Media | 4 | 10h | Bajo |
| TOTAL | 9 | 20h | - |
NOTA IMPORTANTE
Las correcciones de codigo requieren mayor cuidado que las de documentacion:
- Deben ejecutarse en ambiente de desarrollo
- Requieren pruebas antes de commit
- Pueden tener efectos secundarios no previstos
1. CORRECCIONES P0 - CRITICAS
C-CODE-001: Implementar Stubs Auth Faltantes
Ruta: apps/backend/src/modules/auth/
Problema: Endpoints documentados no funcionales
Esfuerzo: 2h
Riesgo: ALTO (Seguridad)
Endpoints Afectados:
Stubs no funcionales:
- POST /auth/verify-email
- POST /auth/reset-password
- POST /auth/request-password-reset
Estado actual:
- Devuelven 501 Not Implemented
- Documentados como funcionales en API.md
Opciones de Correccion:
Opcion A - Implementar:
pros: Funcionalidad completa
cons: Requiere integracion email, mas tiempo
esfuerzo: 8-12h
Opcion B - Documentar como no implementado:
pros: Rapido, honesto
cons: Funcionalidad faltante
esfuerzo: 30min
Opcion C - Eliminar del codigo:
pros: Sin codigo muerto
cons: Pierde la estructura
esfuerzo: 1h
RECOMENDACION: Opcion B (actualizar docs) para P0
Opcion A para sprint futuro
Dependencias:
- Servicio de email (si se implementa)
- Tokens de verificacion
Validacion:
- Comportamiento consistente con documentacion
- Tests unitarios actualizados
- No breaking changes en auth existente
C-CODE-002: Reubicar Paginas Admin del Portal Student
Ruta: apps/frontend/src/apps/student/pages/admin/
Problema: Paginas admin en ubicacion incorrecta
Esfuerzo: 2h
Riesgo: MEDIO (Puede romper rutas)
Archivos a Mover:
Origen:
apps/frontend/src/apps/student/pages/admin/
- AdminDashboard.tsx
- AdminSettings.tsx
- AdminUsers.tsx
Destino:
apps/frontend/src/apps/admin/pages/
Pasos de Ejecucion:
- Verificar si archivos ya existen en destino
- Comparar contenido si hay duplicados
- Mover archivos
- Actualizar imports en router
- Actualizar imports en otros componentes
- Ejecutar tests
- Verificar navegacion en browser
Dependencias:
- Router de Student app
- Router de Admin app
- Posibles imports cruzados
Validacion:
- Rutas admin funcionando
- Sin errores de import
- Navigation correcta
- Tests pasando
2. CORRECCIONES P1 - ALTAS
C-CODE-003: Unificar Rutas Duplicadas Profile
Ruta: apps/backend/src/modules/
Problema: Duplicacion /auth/profile vs /users/profile
Esfuerzo: 2h
Riesgo: MEDIO (Breaking change potencial)
Rutas Duplicadas:
Ruta 1: GET /auth/profile
- Controlador: AuthController
- Retorna: Usuario autenticado
Ruta 2: GET /users/profile
- Controlador: UsersController (o ProfileController)
- Retorna: Usuario autenticado
Diferencias:
- Verificar si retornan misma estructura
- Verificar si tienen mismos guards
Opcion Recomendada:
Mantener: /auth/profile (estandar comun)
Deprecar: /users/profile (agregar deprecation warning)
Timeline:
- Sprint actual: Agregar warning en /users/profile
- Sprint +2: Eliminar /users/profile
Dependencias:
- Frontend: Verificar cual ruta usa actualmente
- Otros consumidores de API
Validacion:
- Una sola ruta canonica
- Frontend actualizado
- Warning de deprecacion en ruta vieja
C-CODE-004: Resolver Duplicacion Paginas Teacher
Ruta: apps/frontend/src/apps/teacher/pages/
Problema: 11 pares de paginas duplicadas
Esfuerzo: 2h
Riesgo: BAJO
Archivos Duplicados:
Par 1:
- TeacherDashboard.tsx
- TeacherDashboardPage.tsx
Par 2:
- TeacherStudents.tsx
- TeacherStudentsPage.tsx
# ... 9 pares mas
Analisis Requerido:
- Verificar cual archivo esta referenciado en router
- Comparar contenido de ambos archivos
- Determinar si uno es wrapper del otro
- Decidir convencion de nombres
Opciones:
Opcion A - Mantener *Page.tsx:
- Convencion clara
- Eliminar archivos sin sufijo
Opcion B - Mantener sin sufijo:
- Nombres mas cortos
- Eliminar archivos con sufijo
RECOMENDACION: Opcion A (consistencia con otros portales)
Validacion:
- Solo un archivo por pagina
- Router actualizado
- Sin imports rotos
C-CODE-005: Limpiar Rutas Inconsistentes Gamification
Ruta: apps/backend/src/modules/gamification/
Problema: Rutas con patrones inconsistentes
Esfuerzo: 2h
Riesgo: MEDIO
Inconsistencias Detectadas:
Patron 1 (kebab-case):
- /gamification/daily-missions
- /gamification/maya-ranks
Patron 2 (camelCase):
- /gamification/leaderBoard # inconsistente
Patron 3 (snake_case):
- /gamification/reward_history # inconsistente
Correccion:
- Estandarizar a kebab-case (REST best practice)
- Agregar aliases temporales para backwards compatibility
Validacion:
- Todas las rutas en kebab-case
- Aliases funcionando
- Frontend actualizado
3. CORRECCIONES P2 - MEDIAS
C-CODE-006: Implementar Mecanicas M5 Faltantes
Ruta: apps/frontend/src/features/mechanics/module5/
Problema: 2 mecanicas documentadas no implementadas
Esfuerzo: 4h (por mecanica)
Riesgo: BAJO (Nueva funcionalidad)
Mecanicas Faltantes:
1. PodcastReflexivo:
- Tipo: Audio recording/playback
- Interaccion: Grabar reflexion de voz
- Dependencias: Web Audio API
2. DiarioReflexivo:
- Tipo: Rich text editor
- Interaccion: Escritura libre con prompts
- Dependencias: Editor WYSIWYG
Decision Requerida:
- Confirmar si estan en scope actual
- Si no, actualizar documentacion (ver C-DOC-014)
C-CODE-007: Agregar Indices Faltantes Database
Ruta: apps/database/ddl/schemas/*/indexes/
Problema: Performance potencial
Esfuerzo: 2h
Riesgo: BAJO
Indices Sugeridos:
-- progress_tracking
CREATE INDEX idx_exercise_attempts_user_date
ON progress_tracking.exercise_attempts(user_id, attempted_at);
-- social_features
CREATE INDEX idx_friend_requests_status
ON social_features.friend_requests(status, created_at);
-- gamification_system
CREATE INDEX idx_daily_missions_user_date
ON gamification_system.daily_missions(user_id, date);
C-CODE-008: Completar RLS Policies Faltantes
Ruta: apps/database/ddl/schemas/*/rls-policies/
Problema: Seguridad incompleta
Esfuerzo: 2h
Riesgo: MEDIO (Seguridad)
Tablas sin RLS completo:
- communication.messages
- gamification_system.item_shop
- progress_tracking.teacher_interventions
C-CODE-009: Eliminar Codigo Muerto Teacher Module
Ruta: apps/frontend/src/apps/teacher/
Problema: Componentes no utilizados
Esfuerzo: 2h
Riesgo: BAJO
Analisis Requerido:
- Identificar componentes sin referencias
- Verificar que no sean lazy-loaded
- Eliminar de forma segura
4. MATRIZ DE DEPENDENCIAS CODIGO
C-CODE-001 (Auth stubs) ─────> Standalone
C-CODE-002 (Admin pages) ─┬─> C-CODE-004 (Teacher pages)
└─> Frontend Router updates
C-CODE-003 (Profile routes) ──> Frontend API calls update
C-CODE-004 (Teacher duplicates) ──> Frontend Router update
C-CODE-005 (Gamification routes) ──> Frontend API calls update
5. IMPACTO EN TESTS
Tests a Actualizar:
Backend:
- auth.controller.spec.ts (si C-CODE-001)
- gamification routes tests (si C-CODE-005)
Frontend:
- Teacher pages tests (si C-CODE-004)
- Admin pages tests (si C-CODE-002)
E2E:
- Auth flow tests
- Navigation tests
6. CHECKLIST PRE-IMPLEMENTACION
Ambiente:
- Branch de desarrollo creado
- Base de datos de desarrollo disponible
- Tests pasando en estado actual
Backup:
- Commit de referencia identificado
- Posibilidad de rollback
Comunicacion:
- Cambios breaking documentados
- Plan de migracion si aplica
7. ORDEN DE EJECUCION RECOMENDADO
Sprint 1 (Bajo riesgo):
- C-CODE-004: Teacher duplicates (cleanup)
- C-CODE-009: Codigo muerto (cleanup)
Sprint 2 (Medio riesgo):
- C-CODE-002: Admin pages location
- C-CODE-005: Gamification routes
Sprint 3 (Decisiones):
- C-CODE-001: Auth stubs (decision requerida)
- C-CODE-003: Profile routes (deprecation)
Backlog:
- C-CODE-006: Mecanicas M5 (si en scope)
- C-CODE-007: Indices DB
- C-CODE-008: RLS policies
Generado por: Requirements-Analyst Fecha: 2025-12-23 Version: 1.0