workspace/projects/gamilit/orchestration/analisis-teacher-portal-2025-12-18/05-ANALISIS-DATABASE.md
rckrdmrd 9660dfbe07 feat(teacher-portal): Implementar Sprint 1-3 completo (P0-P2)
## 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>
2025-12-18 21:41:56 -06:00

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)

  1. auth_management.profiles - Perfiles de usuarios (teacher role)
  2. social_features.classrooms - Aulas virtuales
  3. social_features.teacher_classrooms - M2M teachers-aulas
  4. social_features.classroom_members - Estudiantes en aulas
  5. progress_tracking.module_progress - Progreso por módulo
  6. progress_tracking.exercise_submissions - Envíos de ejercicios
  7. progress_tracking.manual_reviews - Revisiones manuales
  8. progress_tracking.teacher_notes - Notas del profesor
  9. progress_tracking.student_intervention_alerts - Alertas de intervención
  10. social_features.teacher_reports - Metadatos de reportes
  11. educational_content.teacher_content - Contenido creado por teacher
  12. educational_content.assignments - Tareas/asignaciones

VISTAS EXISTENTES (3)

  1. admin_dashboard.classroom_overview - Resumen por aula
  2. educational_content.published_teacher_content - Contenido publicado
  3. 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

  1. trg_update_user_stats_on_submission - Actualiza stats al calificar
  2. trg_update_classroom_count - Mantiene contador de estudiantes
  3. trg_update_module_progress_on_submission - Actualiza progreso

GAPS IDENTIFICADOS (10)

P1 - Alta Prioridad

  1. Falta vista classroom_progress_overview

    • Progreso agregado por aula/módulo
    • Estudiantes at-risk
  2. RLS falta en teacher_notes

    • Tabla sin RLS habilitado
  3. Índices faltantes para queries frecuentes

    • classroom_members(classroom_id, status)
    • module_progress(classroom_id, status)

P2 - Media Prioridad

  1. Tabla teacher_interventions

    • Registro de acciones post-alerta
  2. Vista teacher_pending_reviews

    • Dashboard de tareas por calificar
  3. Tabla teacher_alert_preferences

    • Customización de umbrales
  4. Historial de cambios en alerts

    • status_history, severity_history

P3 - Baja Prioridad

  1. Tabla tutoring_sessions
  2. Vistas analíticas por teacher
  3. 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