## Sprint 1 (P0-P1) - P0-02: Submit en Emparejamiento y DragDrop - P0-03: Visualización mecánicas manuales (10 tipos) - P0-04: NotificationService en alertas - P1-01: RLS en teacher_notes - P1-02: Índices críticos para queries - P1-04: Habilitar páginas Communication y Content ## Sprint 2 (P1) - P1-03: Vista classroom_progress_overview - P1-05: Resolver TODOs StudentProgressService - P1-06: Hook useMissionStats - P1-07: Hook useMasteryTracking - P1-08: Cache invalidation en AnalyticsService ## Sprint 3 (P2) - P2-01: WebSocket para monitoreo real-time - P2-02: RubricEvaluator componente - P2-03: Reproductor multimedia (video/audio/image) - P2-04: Tabla teacher_interventions - P2-05: Vista teacher_pending_reviews Total: 17 tareas, 28 archivos 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.5 KiB
4.5 KiB
ANÁLISIS DE DATABASE PARA PORTAL TEACHER - GAMILIT
Fecha: 18 Diciembre 2025 Versión: 1.0 Especialista: Database-Analyst
RESUMEN EJECUTIVO
| Aspecto | Estado | Descripción |
|---|---|---|
| Tablas Teacher | ✅ Completas | classrooms, teacher_classrooms, teacher_notes |
| Progreso Estudiantes | ✅ Completo | module_progress, exercise_submissions |
| Alertas Intervención | ✅ Implementado | student_intervention_alerts con función generadora |
| Mensajes/Comunicación | ✅ Implementado | communication.messages |
| Vistas Agregadas | ⚠️ Incompletas | Falta classroom_progress_overview |
| RLS Policies | ✅ Implementado | 5 tablas con políticas teacher |
| Reportes Maestros | ⚠️ Parcial | teacher_reports sin vistas analíticas |
TABLAS PRINCIPALES PARA TEACHER (12)
- auth_management.profiles - Perfiles de usuarios (teacher role)
- social_features.classrooms - Aulas virtuales
- social_features.teacher_classrooms - M2M teachers-aulas
- social_features.classroom_members - Estudiantes en aulas
- progress_tracking.module_progress - Progreso por módulo
- progress_tracking.exercise_submissions - Envíos de ejercicios
- progress_tracking.manual_reviews - Revisiones manuales
- progress_tracking.teacher_notes - Notas del profesor
- progress_tracking.student_intervention_alerts - Alertas de intervención
- social_features.teacher_reports - Metadatos de reportes
- educational_content.teacher_content - Contenido creado por teacher
- educational_content.assignments - Tareas/asignaciones
VISTAS EXISTENTES (3)
- admin_dashboard.classroom_overview - Resumen por aula
- educational_content.published_teacher_content - Contenido publicado
- communication.recent_classroom_messages - Mensajes recientes
RLS POLICIES PARA TEACHER
| Tabla | Policy | Efecto |
|---|---|---|
| classrooms | classrooms_read_teacher | Teachers ven solo sus aulas |
| classrooms | classrooms_manage_teacher | Teachers editan sus aulas |
| classroom_members | classroom_members_select_teacher | Teachers ven sus estudiantes |
| exercise_submissions | exercise_submissions_select_teacher | Teachers ven envíos de sus estudiantes |
| module_progress | module_progress_select_teacher | Teachers ven progreso de activos |
| student_intervention_alerts | teacher_view_classroom_alerts | Teachers ven alertas de sus aulas |
| teacher_classrooms | teacher_classrooms_read_teacher | Teachers ven sus asignaciones |
TRIGGERS RELEVANTES
- trg_update_user_stats_on_submission - Actualiza stats al calificar
- trg_update_classroom_count - Mantiene contador de estudiantes
- trg_update_module_progress_on_submission - Actualiza progreso
GAPS IDENTIFICADOS (10)
P1 - Alta Prioridad
-
Falta vista classroom_progress_overview
- Progreso agregado por aula/módulo
- Estudiantes at-risk
-
RLS falta en teacher_notes
- Tabla sin RLS habilitado
-
Índices faltantes para queries frecuentes
- classroom_members(classroom_id, status)
- module_progress(classroom_id, status)
P2 - Media Prioridad
-
Tabla teacher_interventions
- Registro de acciones post-alerta
-
Vista teacher_pending_reviews
- Dashboard de tareas por calificar
-
Tabla teacher_alert_preferences
- Customización de umbrales
-
Historial de cambios en alerts
- status_history, severity_history
P3 - Baja Prioridad
- Tabla tutoring_sessions
- Vistas analíticas por teacher
- Tabla assignment_comments
SQL CAMBIOS INMEDIATOS
-- 1. Habilitar RLS en teacher_notes
ALTER TABLE progress_tracking.teacher_notes ENABLE ROW LEVEL SECURITY;
CREATE POLICY teacher_notes_select_own ON progress_tracking.teacher_notes
FOR SELECT USING (teacher_id = gamilit.get_current_user_id());
-- 2. Crear índices críticos
CREATE INDEX IF NOT EXISTS idx_classroom_members_classroom_active
ON social_features.classroom_members(classroom_id, status)
WHERE status = 'active';
CREATE INDEX IF NOT EXISTS idx_module_progress_classroom_status
ON progress_tracking.module_progress(classroom_id, status);
CONCLUSIÓN
Estado General: ✅ ADECUADO con mejoras recomendadas
La base de datos tiene estructura sólida para Portal Teacher. Requiere:
- Vistas analíticas adicionales (P1)
- Optimizaciones de índices (P1)
- Tablas de intervención (P2)
Database Review: Completa - Ready for Implementation