workspace/projects/gamilit/orchestration/agentes/architecture-analyst/REPORTE-ANALISIS-STUDENTS-TEACHER-2025-11-29.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

34 KiB
Raw Blame History

REPORTE DE ANÁLISIS: Portal Students → Impacto en Portal Teacher

Fecha: 2025-11-29 Analista: Architecture-Analyst Versión: 1.0.0 Tarea: Análisis de requerimientos del portal Students que afectan al portal Teacher


📋 RESUMEN EJECUTIVO

Este documento identifica los requerimientos y funcionalidades del Portal de Students que impactan directamente al Portal de Teacher, con el objetivo de garantizar la coherencia y correcta sincronización de datos entre ambos portales.

Hallazgos Principales

Área Estado Actual Requerimientos Identificados
Progreso de Estudiantes ⚠️ Parcial 8 requerimientos
Gamificación ⚠️ Parcial 6 requerimientos
Misiones ⚠️ Parcial 4 requerimientos
Ejercicios Funcional 3 requerimientos de mejora
Estadísticas ⚠️ Parcial 5 requerimientos
Alertas de Intervención ⚠️ Parcial 4 requerimientos

Total: 30 requerimientos identificados para sincronización Student↔Teacher


🎯 OBJETIVO DEL ANÁLISIS

Pregunta principal: ¿Qué información genera el portal de Students que el portal de Teacher necesita visualizar, monitorear o actuar sobre ella?

Flujo de Datos Student → Teacher

┌─────────────────────────────────────────────────────────────────┐
│                      STUDENT PORTAL                             │
│  (Genera datos de progreso, gamificación, actividad)           │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                        BACKEND                                  │
│  - Progress Module (ModuleProgress, ExerciseSubmission)        │
│  - Gamification Module (UserStats, Achievements, MLCoins)      │
│  - Social Module (Classrooms, Teams)                           │
│  - Assignments Module (Submissions)                            │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      TEACHER PORTAL                             │
│  (Consume, visualiza, califica, genera reportes)               │
└─────────────────────────────────────────────────────────────────┘

1 MÓDULOS DEL STUDENT PORTAL ANALIZADOS

1.1 Estructura del Portal Students

Categoría Cantidad Descripción
Páginas 32 Incluye Dashboard, Ejercicios, Logros, Leaderboard, Misiones, Perfil
Componentes 30+ Dashboard (14), Ejercicios (6), Gamificación (6), Logros (6), Notificaciones (3)
Hooks 11 useDashboardData, useExerciseState, useGamificationData, useUserModules, etc.
Stores 9 Auth, Economy, Achievements, Leaderboards, Friends, Guilds, PowerUps, Ranks, Missions
APIs Consumidas 15+ Educational, Gamification, Missions, Progress, Social, Notifications, Assignments

1.2 Funcionalidades Principales del Student

# Funcionalidad Datos Generados Relevancia para Teacher
1 Módulos y Educación ModuleProgress, completion_percentage 🔴 CRÍTICA
2 Sistema de Ejercicios ExerciseAttempt, ExerciseSubmission, score 🔴 CRÍTICA
3 Sistema de Gamificación Maya UserRank, XP, rank_progress 🟡 ALTA
4 Logros/Achievements UserAchievement, unlock_date 🟡 ALTA
5 Economía Virtual (ML Coins) MLCoinsTransaction, balance 🟡 ALTA
6 Sistema de Misiones MissionProgress, completion_status 🟡 ALTA
7 Leaderboards Position, score ranking 🟢 MEDIA
8 Sistema Social Friendships, Teams, Challenges 🟢 MEDIA
9 Progreso y Analytics LearningSession, time_spent, streak 🔴 CRÍTICA
10 Asignaciones Escolares AssignmentSubmission, grade 🔴 CRÍTICA

2 REQUERIMIENTOS IDENTIFICADOS PARA EL PORTAL TEACHER

2.1 PROGRESO DE ESTUDIANTES (8 Requerimientos)

REQ-ST-001: Visualización de Progreso por Módulo en Tiempo Real

Origen Student: useDashboardData() → GET /progress/users/:userId/summary

Campo Student Portal Teacher Portal Estado
totalModules Mostrado ⚠️ Verificar Sincronizar
completedModules Mostrado ⚠️ Verificar Sincronizar
progress_percentage Mostrado ⚠️ Verificar Sincronizar
current_streak Mostrado ⚠️ Verificar Sincronizar
last_activity_at Mostrado ⚠️ Verificar Sincronizar

Requerimiento: El Teacher debe poder ver el mismo resumen de progreso que el estudiante ve en su dashboard, en tiempo real.

Endpoint a consumir: GET /progress/users/:userId/summary Página Teacher afectada: TeacherStudentsPage.tsx, TeacherProgressPage.tsx


REQ-ST-002: Historial de Intentos de Ejercicios

Origen Student: useExerciseState() → ExerciseAttempt

Campo Student Portal Teacher Portal Estado
attempt_number Registrado ⚠️ Verificar Sincronizar
score Registrado ⚠️ Verificar Sincronizar
time_spent Registrado ⚠️ Verificar Sincronizar
hints_used Registrado ⚠️ Verificar Sincronizar
powerups_used Registrado ⚠️ Verificar Sincronizar
answers Registrado ⚠️ Verificar Sincronizar

Requerimiento: El Teacher debe poder ver todos los intentos de un estudiante en un ejercicio, incluyendo respuestas detalladas y uso de ayudas.

Endpoint necesario: GET /progress/attempts/users/:userId/exercises/:exerciseId Página Teacher afectada: TeacherExerciseResponsesPage.tsx


REQ-ST-003: Estadísticas de Sesiones de Aprendizaje

Origen Student: LearningSession entity

Campo Student Portal Teacher Portal Estado
session_duration Tracked ⚠️ Verificar Sincronizar
activities_count Tracked ⚠️ Verificar Sincronizar
modules_visited Tracked ⚠️ Verificar Sincronizar
exercises_completed Tracked ⚠️ Verificar Sincronizar

Requerimiento: El Teacher debe poder ver las sesiones de aprendizaje de sus estudiantes para entender patrones de estudio.

Endpoint necesario: GET /progress/sessions/users/:userId Página Teacher afectada: TeacherAnalyticsPage.tsx


REQ-ST-004: Actividades Pendientes del Estudiante

Origen Student: useDashboardData() → PendingActivities

Campo Descripción Teacher Visibility
pending_exercises Ejercicios no completados ⚠️ Necesario
pending_missions Misiones activas no completadas ⚠️ Necesario
pending_assignments Asignaciones por entregar ⚠️ Necesario
deadline Fechas límite ⚠️ Necesario

Requerimiento: El Teacher debe ver qué actividades tiene pendientes cada estudiante para identificar quienes necesitan seguimiento.

Endpoint necesario: GET /progress/users/:userId/pending-activities Página Teacher afectada: TeacherStudentsPage.tsx, TeacherAlertsPage.tsx


REQ-ST-005: Actividades Recientes del Estudiante

Origen Student: useRecentActivities(limit)

Campo Descripción Teacher Visibility
activity_type Tipo de actividad (ejercicio, logro, misión) ⚠️ Necesario
activity_description Descripción de la actividad ⚠️ Necesario
timestamp Fecha/hora de la actividad ⚠️ Necesario
score Puntuación si aplica ⚠️ Necesario
rewards Recompensas obtenidas ⚠️ Necesario

Requerimiento: El Teacher debe ver un feed de actividad reciente de sus estudiantes (últimas 24-48 horas).

Endpoint necesario: GET /progress/users/:userId/recent-activities Página Teacher afectada: TeacherDashboardPage.tsx


REQ-ST-006: Ruta de Aprendizaje Personalizada

Origen Student: useDashboardData() → LearningPath

Campo Descripción Teacher Visibility
recommended_modules Módulos sugeridos por IA ⚠️ Útil
completion_order Orden óptimo de completación ⚠️ Útil
skill_gaps Brechas de habilidades detectadas ⚠️ Útil

Requerimiento: El Teacher debe poder ver la ruta de aprendizaje sugerida para cada estudiante y poder ajustarla.

Endpoint necesario: GET /progress/users/:userId/learning-path Página Teacher afectada: TeacherStudentsPage.tsx


REQ-ST-007: Dominio de Habilidades (Mastery)

Origen Student: MasteryTracking entity

Campo Descripción Teacher Visibility
skill_id Habilidad evaluada ⚠️ Necesario
mastery_level Nivel de dominio (0-100%) ⚠️ Necesario
assessments_count Evaluaciones realizadas ⚠️ Necesario
last_assessment_date Última evaluación ⚠️ Necesario

Requerimiento: El Teacher debe ver el nivel de dominio de cada habilidad por estudiante para identificar áreas de mejora.

Endpoint necesario: GET /progress/users/:userId/mastery Página Teacher afectada: TeacherProgressPage.tsx, TeacherAnalyticsPage.tsx


REQ-ST-008: Snapshots de Progreso Histórico

Origen Student: ProgressSnapshot entity

Campo Descripción Teacher Visibility
snapshot_date Fecha del snapshot ⚠️ Necesario
modules_completed Módulos completados a esa fecha ⚠️ Necesario
total_xp XP acumulado ⚠️ Necesario
rank Rango a esa fecha ⚠️ Necesario

Requerimiento: El Teacher debe poder ver la evolución histórica del progreso de cada estudiante.

Endpoint necesario: GET /progress/users/:userId/snapshots Página Teacher afectada: TeacherAnalyticsPage.tsx


2.2 GAMIFICACIÓN (6 Requerimientos)

REQ-GAM-001: Estadísticas de Gamificación del Estudiante

Origen Student: useGamificationData() → UserStats

Campo Student Campo Teacher Estado
level Mostrado Verificar mapping
total_xp Mostrado Verificar mapping
xp_to_next_level ⚠️ No mostrado Agregar
ml_coins Mostrado Verificar mapping
current_streak Mostrado Verificar mapping
max_streak ⚠️ No mostrado Agregar
exercises_completed Mostrado Verificar mapping
modules_completed Mostrado Verificar mapping
perfect_scores ⚠️ No mostrado Agregar

Requerimiento: El Teacher debe ver TODAS las estadísticas de gamificación que el estudiante ve, más métricas adicionales para análisis.

Endpoint necesario: GET /gamification/users/:userId/stats Página Teacher afectada: TeacherGamificationPage.tsx, TeacherStudentsPage.tsx


REQ-GAM-002: Progreso de Rango Maya

Origen Student: ranksStore → UserRank

Campo Descripción Teacher Visibility
current_rank Rango actual (Ajaw, Nacom, etc.) ⚠️ Necesario
rank_progress Progreso al siguiente rango (0-100%) ⚠️ Necesario
xp_multiplier Multiplicador de XP del rango ⚠️ Útil
rank_history Historial de promociones ⚠️ Útil

Requerimiento: El Teacher debe ver el rango Maya de cada estudiante y su progreso hacia el siguiente nivel.

Endpoint necesario: GET /gamification/ranks/users/:userId/rank-progress Página Teacher afectada: TeacherGamificationPage.tsx


REQ-GAM-003: Logros Desbloqueados

Origen Student: achievementsStore → UserAchievement

Campo Descripción Teacher Visibility
achievements_unlocked Lista de logros ⚠️ Necesario
unlock_date Fecha de desbloqueo ⚠️ Necesario
rarity Rareza del logro ⚠️ Útil
total_achievements Total disponibles ⚠️ Necesario
achievements_progress Progreso en logros parciales ⚠️ Útil

Requerimiento: El Teacher debe ver los logros de sus estudiantes y poder otorgar logros manualmente.

Endpoint necesario: GET /gamification/users/:userId/achievements Página Teacher afectada: TeacherGamificationPage.tsx


REQ-GAM-004: Balance y Transacciones de ML Coins

Origen Student: economyStore → MLCoinsTransaction

Campo Descripción Teacher Visibility
current_balance Balance actual ⚠️ Necesario
transactions_history Historial de transacciones ⚠️ Necesario
coins_earned_today Ganados hoy ⚠️ Útil
coins_spent_total Total gastado ⚠️ Útil

Requerimiento: El Teacher debe ver el balance de ML Coins de sus estudiantes y poder otorgar bonificaciones.

Endpoint necesario: GET /gamification/users/:userId/ml-coins Página Teacher afectada: TeacherGamificationPage.tsx Funcionalidad adicional: POST /teacher/gamification/bonus (ya existe)


REQ-GAM-005: Inventario de Comodines/Power-ups

Origen Student: powerUpsStore → ComodinesInventory

Campo Descripción Teacher Visibility
comodines_available Comodines en inventario ⚠️ Útil
comodines_used Comodines usados (total) ⚠️ Útil
usage_history Historial de uso ⚠️ Útil

Requerimiento: El Teacher debe poder ver el uso de comodines de sus estudiantes para evaluar si dependen demasiado de ayudas.

Endpoint necesario: GET /gamification/comodines/users/:userId/inventory Página Teacher afectada: TeacherGamificationPage.tsx, TeacherAnalyticsPage.tsx


REQ-GAM-006: Posición en Leaderboard

Origen Student: leaderboardsStore

Campo Descripción Teacher Visibility
global_position Posición global ⚠️ Útil
classroom_position Posición en el aula ⚠️ Necesario
school_position Posición en la escuela ⚠️ Útil
rank_change Cambio de posición ⚠️ Útil

Requerimiento: El Teacher debe ver las posiciones de sus estudiantes en los diferentes leaderboards.

Endpoint necesario: GET /gamification/leaderboards/classrooms/:classroomId Página Teacher afectada: TeacherGamificationPage.tsx, TeacherDashboardPage.tsx


2.3 MISIONES (4 Requerimientos)

REQ-MIS-001: Misiones Activas del Estudiante

Origen Student: missionsStore → Mission

Campo Descripción Teacher Visibility
daily_missions Misiones diarias activas ⚠️ Necesario
weekly_missions Misiones semanales activas ⚠️ Necesario
special_missions Misiones especiales/eventos ⚠️ Necesario
mission_progress Progreso en cada misión ⚠️ Necesario

Requerimiento: El Teacher debe ver qué misiones tienen activas sus estudiantes y su progreso.

Endpoint necesario: GET /gamification/missions/users/:userId/active Página Teacher afectada: TeacherStudentsPage.tsx


REQ-MIS-002: Historial de Misiones Completadas

Origen Student: Mission entity con status='completed'

Campo Descripción Teacher Visibility
missions_completed Total de misiones completadas ⚠️ Necesario
missions_by_type Completadas por tipo (daily/weekly) ⚠️ Necesario
completion_rate Tasa de completación ⚠️ Necesario
rewards_claimed Recompensas reclamadas ⚠️ Útil

Requerimiento: El Teacher debe ver estadísticas de misiones completadas para evaluar compromiso.

Endpoint necesario: GET /gamification/missions/users/:userId/history Página Teacher afectada: TeacherAnalyticsPage.tsx


REQ-MIS-003: Estadísticas de Misiones del Aula

Origen Student: MissionStats agregado

Campo Descripción Teacher Visibility
classroom_avg_completion Promedio de completación del aula ⚠️ Necesario
top_mission_completers Estudiantes con más misiones ⚠️ Necesario
struggling_students Estudiantes con pocas misiones ⚠️ Necesario

Requerimiento: El Teacher debe ver métricas agregadas de misiones a nivel de aula.

Endpoint necesario: GET /gamification/missions/classrooms/:classroomId/stats Página Teacher afectada: TeacherDashboardPage.tsx, TeacherAnalyticsPage.tsx


REQ-MIS-004: Misiones Programadas por el Teacher

Origen Student: ScheduledMission entity

Campo Descripción Teacher Action
scheduled_missions Misiones asignadas al aula Crear
participant_progress Progreso de participantes ⚠️ Visualizar
deadline Fecha límite Definir
rewards Recompensas configuradas Definir

Requerimiento: El Teacher debe poder crear misiones específicas para su aula y monitorear el progreso.

Endpoint necesario:

  • POST /progress/scheduled-missions (crear)
  • GET /progress/scheduled-missions/:missionId/progress (monitorear)

Página Teacher afectada: TeacherAssignmentsPage.tsx o nueva página de misiones


2.4 EJERCICIOS (3 Requerimientos)

REQ-EXE-001: Respuestas Detalladas de Ejercicios

Origen Student: ExerciseSubmission entity

Campo Descripción Teacher Visibility
student_answers Respuestas del estudiante 🔴 CRÍTICO
correct_answers Respuestas correctas 🔴 CRÍTICO
partial_scores Puntuación por pregunta ⚠️ Necesario
feedback_needed Si requiere revisión manual 🔴 CRÍTICO
auto_graded Si fue calificado automáticamente ⚠️ Necesario

Requerimiento: El Teacher debe poder ver las respuestas exactas de cada estudiante, comparar con las correctas, y poder agregar feedback.

Endpoint necesario: GET /progress/submissions/:submissionId/details Página Teacher afectada: TeacherExerciseResponsesPage.tsx


REQ-EXE-002: Estadísticas por Tipo de Ejercicio

Origen Student: ExerciseAttempt agregado por mechanic_type

Campo Descripción Teacher Visibility
mechanic_type Tipo de mecánica (crucigrama, timeline, etc.) ⚠️ Necesario
avg_score_by_type Promedio de puntuación por tipo ⚠️ Necesario
completion_rate_by_type Tasa de completación por tipo ⚠️ Necesario
time_spent_by_type Tiempo promedio por tipo ⚠️ Necesario

Requerimiento: El Teacher debe ver qué tipos de ejercicios le cuestan más a sus estudiantes.

Endpoint necesario: GET /progress/classrooms/:classroomId/exercise-stats Página Teacher afectada: TeacherAnalyticsPage.tsx


REQ-EXE-003: Ejercicios con Más Fallos

Origen Student: ExerciseAttempt con score < passing

Campo Descripción Teacher Visibility
exercise_id Ejercicio problemático ⚠️ Necesario
failure_count Cantidad de fallos ⚠️ Necesario
avg_score Puntuación promedio ⚠️ Necesario
common_mistakes Errores más comunes ⚠️ Necesario

Requerimiento: El Teacher debe identificar qué ejercicios específicos causan más problemas para revisar contenido o dar apoyo adicional.

Endpoint necesario: GET /progress/classrooms/:classroomId/problematic-exercises Página Teacher afectada: TeacherAnalyticsPage.tsx, TeacherAlertsPage.tsx


2.5 ESTADÍSTICAS CONSOLIDADAS (5 Requerimientos)

REQ-STAT-001: Resumen de Estadísticas del Estudiante

Origen Student: useUserStatistics() → GAP-008 implementado

Campo Descripción Teacher Must See
totalTimeSpent Tiempo total de estudio CRÍTICO
averageScore Puntuación promedio CRÍTICO
exercisesCompleted Ejercicios completados CRÍTICO
modulesCompleted Módulos completados CRÍTICO
currentStreak Racha actual CRÍTICO
longestStreak Mejor racha ⚠️ Útil
perfectScores Puntuaciones perfectas ⚠️ Útil
achievementsUnlocked Logros desbloqueados ⚠️ Útil

Requerimiento: El Teacher debe ver el mismo resumen de estadísticas que el estudiante ve en su perfil.

Endpoint existente: GET /auth/profile/statistics (implementado en GAP-008) Página Teacher afectada: TeacherStudentsPage.tsx, TeacherProgressPage.tsx


REQ-STAT-002: Comparativa del Estudiante vs Clase

Origen: Calculado

Campo Descripción Teacher Visibility
score_percentile Percentil en la clase ⚠️ Necesario
completion_percentile Percentil de completación ⚠️ Necesario
above_avg_skills Habilidades sobre el promedio ⚠️ Necesario
below_avg_skills Habilidades bajo el promedio ⚠️ Necesario

Requerimiento: El Teacher debe ver cómo se compara cada estudiante con el promedio de la clase.

Endpoint necesario: GET /teacher/students/:studentId/insights Página Teacher afectada: TeacherStudentsPage.tsx


REQ-STAT-003: Métricas de Engagement

Origen Student: EngagementMetrics entity

Campo Descripción Teacher Visibility
daily_active_time Tiempo activo diario ⚠️ Necesario
sessions_per_week Sesiones por semana ⚠️ Necesario
activity_pattern Patrón de actividad (días/horas) ⚠️ Útil
engagement_score Puntuación de engagement ⚠️ Necesario

Requerimiento: El Teacher debe ver métricas de engagement para identificar estudiantes desenganchados.

Endpoint necesario: GET /progress/users/:userId/engagement Página Teacher afectada: TeacherAnalyticsPage.tsx


REQ-STAT-004: Tendencias de Rendimiento

Origen: Calculado desde ProgressSnapshot

Campo Descripción Teacher Visibility
score_trend Tendencia de puntuación (subiendo/bajando) ⚠️ Necesario
completion_trend Tendencia de completación ⚠️ Necesario
activity_trend Tendencia de actividad ⚠️ Necesario
risk_level Nivel de riesgo de deserción ⚠️ CRÍTICO

Requerimiento: El Teacher debe ver tendencias para identificar estudiantes que están mejorando o empeorando.

Endpoint necesario: GET /teacher/students/:studentId/trends Página Teacher afectada: TeacherAnalyticsPage.tsx, TeacherAlertsPage.tsx


REQ-STAT-005: Exportación de Datos del Estudiante

Origen: Múltiples fuentes

Requerimiento: El Teacher debe poder exportar un reporte completo de cada estudiante con todas sus estadísticas para reuniones con padres.

Formato de exportación:

  • PDF: Reporte visual con gráficos
  • Excel: Datos crudos para análisis

Endpoint necesario: POST /teacher/students/:studentId/export Página Teacher afectada: TeacherReportsPage.tsx


2.6 ALERTAS DE INTERVENCIÓN (4 Requerimientos)

REQ-ALT-001: Alertas por Inactividad

Origen Student: LearningSession con gaps

Trigger Descripción Teacher Alert
3+ días sin actividad Estudiante no ha entrado 🔴 CRÍTICO
7+ días sin actividad Riesgo de abandono 🔴 CRÍTICO
0 ejercicios en semana Sin progreso semanal ⚠️ ALTA

Requerimiento: El sistema debe generar alertas automáticas cuando un estudiante deja de ser activo.

Implementación: Trigger en BD o CRON job que detecte inactividad y cree StudentInterventionAlert

Página Teacher afectada: TeacherAlertsPage.tsx, TeacherDashboardPage.tsx


REQ-ALT-002: Alertas por Bajo Rendimiento

Origen Student: ExerciseSubmission con scores bajos

Trigger Descripción Teacher Alert
score < 50% promedio Rendimiento bajo general 🔴 CRÍTICO
3+ ejercicios fallidos seguidos Frustración detectada 🔴 CRÍTICO
declining_trend Tendencia negativa ⚠️ ALTA

Requerimiento: El sistema debe alertar cuando un estudiante muestra bajo rendimiento consistente.

Implementación: Trigger después de cada submission que evalúe patrón

Página Teacher afectada: TeacherAlertsPage.tsx


REQ-ALT-003: Alertas por Misiones Expiradas

Origen Student: Mission con status='expired'

Trigger Descripción Teacher Alert
daily_missions_missed No completó misiones diarias ⚠️ MEDIA
weekly_missions_missed No completó misiones semanales ⚠️ ALTA
scheduled_mission_missed No completó misión asignada 🔴 CRÍTICO

Requerimiento: El sistema debe notificar cuando estudiantes no completan misiones asignadas.

Implementación: CRON job de verificación de misiones expiradas

Página Teacher afectada: TeacherAlertsPage.tsx


REQ-ALT-004: Alertas por Asignaciones Vencidas

Origen Student: AssignmentStudent con deadline < now y status != 'completed'

Trigger Descripción Teacher Alert
assignment_overdue Asignación no entregada 🔴 CRÍTICO
assignment_due_soon Asignación próxima a vencer ⚠️ ALTA
assignment_no_progress Asignación sin progreso ⚠️ ALTA

Requerimiento: El sistema debe alertar sobre asignaciones no entregadas o próximas a vencer.

Implementación: CRON job de verificación de deadlines

Página Teacher afectada: TeacherAlertsPage.tsx, TeacherAssignmentsPage.tsx


3 MATRIZ DE DEPENDENCIAS STUDENT → TEACHER

3.1 Flujo de Datos Principal

┌─────────────────────────────────────────────────────────────────────────────┐
│                              FLUJO DE DATOS                                │
└─────────────────────────────────────────────────────────────────────────────┘

STUDENT GENERA                    BACKEND PROCESA                TEACHER CONSUME
──────────────────────────────────────────────────────────────────────────────

1. Completa Ejercicio
   └── ExerciseAttempt ──────────► progress_tracking.exercise_attempts
   └── ExerciseSubmission ───────► progress_tracking.exercise_submissions
   └── Score + Time ─────────────► Actualiza ModuleProgress ──────► Ver progreso
                                  └── Distribuye XP/Coins ────────► Ver stats
                                  └── Verifica Achievements ──────► Ver logros
                                  └── Actualiza Misiones ─────────► Ver misiones

2. Sesión de Aprendizaje
   └── LearningSession ──────────► progress_tracking.learning_sessions
   └── Duration + Activities ────► Métricas engagement ──────────► Ver analytics

3. Actividad de Gamificación
   └── Rank Progress ────────────► gamification_system.user_ranks ──► Ver ranking
   └── Achievement Unlock ───────► gamification_system.user_achievements ──► Ver
   └── ML Coins Transaction ─────► gamification_system.ml_coins_transactions ──► Ver

4. Misión Completada
   └── Mission Progress ─────────► Calcula recompensas
   └── Mission Claimed ──────────► Distribuye rewards ────────────► Ver balance

5. Asignación Enviada
   └── AssignmentSubmission ─────► Notifica teacher ──────────────► Calificar

3.2 Endpoints Críticos que Teacher Debe Consumir del Student

# Endpoint Módulo Backend Datos Prioridad
1 GET /progress/users/:id/summary Progress Resumen de progreso 🔴 P0
2 GET /progress/users/:id/modules/:moduleId Progress Progreso específico 🔴 P0
3 GET /gamification/users/:id/stats Gamification Stats completas 🔴 P0
4 GET /gamification/users/:id/achievements Gamification Logros 🟡 P1
5 GET /gamification/ranks/users/:id/rank-progress Gamification Rango Maya 🟡 P1
6 GET /gamification/users/:id/ml-coins Gamification Balance ML Coins 🟡 P1
7 GET /progress/submissions/:id Progress Detalle submission 🔴 P0
8 GET /progress/attempts/users/:id/exercises/:exId Progress Intentos 🟡 P1
9 GET /progress/users/:id/pending-activities Progress Pendientes 🟡 P1
10 GET /progress/users/:id/recent-activities Progress Recientes 🟡 P1
11 GET /gamification/missions/users/:id/active Gamification Misiones activas 🟡 P1
12 GET /gamification/leaderboards/classrooms/:id Gamification Leaderboard aula 🟢 P2

4 RECOMENDACIONES DE IMPLEMENTACIÓN

4.1 Priorización de Requerimientos

P0 - CRÍTICO (Implementar inmediatamente)

ID Requerimiento Impacto
REQ-ST-001 Progreso por módulo en tiempo real Dashboard funcional
REQ-ST-002 Historial de intentos de ejercicios Calificación correcta
REQ-EXE-001 Respuestas detalladas de ejercicios Core del Teacher
REQ-STAT-001 Resumen de estadísticas Visión del estudiante
REQ-ALT-001 Alertas por inactividad Intervención temprana
REQ-ALT-002 Alertas por bajo rendimiento Intervención temprana

P1 - ALTA (Implementar en siguiente sprint)

ID Requerimiento Impacto
REQ-GAM-001 Estadísticas de gamificación Gamification insights
REQ-GAM-002 Progreso de rango Maya Engagement tracking
REQ-GAM-003 Logros desbloqueados Reconocimiento
REQ-MIS-001 Misiones activas Monitoreo engagement
REQ-EXE-002 Estadísticas por tipo de ejercicio Analytics
REQ-STAT-002 Comparativa estudiante vs clase Insights

P2 - MEDIA (Backlog)

ID Requerimiento Impacto
REQ-ST-006 Ruta de aprendizaje Personalización
REQ-GAM-005 Inventario de comodines Análisis de ayudas
REQ-MIS-004 Misiones programadas Feature avanzado
REQ-STAT-005 Exportación de datos Reportes padres

4.2 Tareas Técnicas Necesarias

Backend

  1. Verificar endpoints existentes - Confirmar que todos los endpoints listados existen y devuelven los campos correctos
  2. Agregar campos faltantes - Algunos DTOs pueden necesitar campos adicionales
  3. Implementar agregaciones - Endpoints de estadísticas del aula
  4. Crear triggers de alertas - Automatizar detección de problemas

Frontend (Teacher Portal)

  1. Revisar hooks existentes - Verificar que consumen correctamente los endpoints
  2. Agregar visualizaciones - Gráficos de tendencias y comparativas
  3. Implementar drill-down - Del resumen al detalle del estudiante
  4. Sistema de alertas - Notificaciones en tiempo real

5 CONCLUSIONES

Hallazgos Principales

  1. El Portal de Students genera datos críticos que el Portal de Teacher debe consumir para funcionar correctamente (progreso, gamificación, misiones, estadísticas).

  2. Existe infraestructura backend para la mayoría de los datos, pero es necesario verificar que los endpoints expongan todos los campos necesarios.

  3. Las alertas de intervención son un área crítica que requiere automatización mediante triggers o CRON jobs.

  4. 30 requerimientos identificados distribuidos en 6 categorías, con 12 marcados como críticos (P0).

Próximos Pasos Recomendados

  1. FASE 2 - PLANEACIÓN: Diseñar tareas específicas para cada requerimiento
  2. VALIDACIÓN: Verificar endpoints existentes vs requeridos
  3. ORQUESTACIÓN: Delegar implementaciones a agentes especializados
  4. TESTING: Validar flujo completo Student → Backend → Teacher

Documento generado por: Architecture-Analyst Fecha: 2025-11-29 Versión: 1.0.0 Estado: FASE 1 - ANÁLISIS COMPLETADO