workspace/projects/gamilit/orchestration/analisis/SPEC-FASE-5A-SIDEBAR.md
rckrdmrd 608e1e2a2e
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
Multi-project update: gamilit, orchestration, trading-platform
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>
2025-12-18 07:17:46 -06:00

7.1 KiB

ESPECIFICACION TECNICA - FASE 5A

Cambios en Sidebar (Bajo Riesgo)

Fecha: 2025-12-15 Prioridad: ALTA (ejecutar primero) Riesgo: BAJO Tiempo estimado de implementacion: 1-2 horas


1. OBJETIVO

Remover del sidebar de navegacion las paginas que no se van a usar en esta fase:

  • Comunicacion (bloqueada por feature flag)
  • Contenido (bloqueada por feature flag)
  • Recursos (stub sin implementacion)
  • Estudiantes (sera migrada a Dashboard - FASE 5B)
  • Analiticas (sera fusionada con Progress - FASE 5C)

2. ARCHIVOS A MODIFICAR

2.1 GamilitSidebar.tsx

Ruta: /home/isem/workspace/projects/gamilit/apps/frontend/src/shared/components/layout/GamilitSidebar.tsx

Seccion a modificar: Lines 192-277 (array teacherItems)

CODIGO ACTUAL (lineas 192-277):

const teacherItems = [
  {
    id: 'classes',
    label: 'Mis Aulas *',
    path: '/teacher/classes',
    icon: 'School',
  },
  {
    id: 'students',
    label: 'Estudiantes *',
    path: '/teacher/students',
    icon: 'Users',
  },
  {
    id: 'monitoring',
    label: 'Monitoreo *',
    path: '/teacher/monitoring',
    icon: 'User',
  },
  {
    id: 'assignments',
    label: 'Asignaciones *',
    path: '/teacher/assignments',
    icon: 'Calendar',
  },
  {
    id: 'responses',
    label: 'Respuestas',
    path: '/teacher/responses',
    icon: 'ClipboardList',
  },
  {
    id: 'reviews',
    label: 'Revisiones M3-M5',
    path: '/teacher/reviews',
    icon: 'CheckCircle',
  },
  {
    id: 'progress',
    label: 'Progreso *',
    path: '/teacher/progress',
    icon: 'TrendingUp',
  },
  {
    id: 'alerts',
    label: 'Alertas *',
    path: '/teacher/alerts',
    icon: 'AlertTriangle',
  },
  {
    id: 'analytics',
    label: 'Analíticas *',
    path: '/teacher/analytics',
    icon: 'BarChart3',
  },
  {
    id: 'reports',
    label: 'Reportes *',
    path: '/teacher/reports',
    icon: 'FileText',
  },
  {
    id: 'communication',
    label: 'Comunicación *',
    path: '/teacher/communication',
    icon: 'MessageSquare',
  },
  {
    id: 'content',
    label: 'Contenido *',
    path: '/teacher/content',
    icon: 'BookOpen',
  },
  {
    id: 'gamification',
    label: 'Gamificación *',
    path: '/teacher/gamification',
    icon: 'Trophy',
  },
  {
    id: 'resources',
    label: 'Recursos *',
    path: '/teacher/resources',
    icon: 'Share2',
  },
];

CODIGO PROPUESTO:

const teacherItems = [
  {
    id: 'classes',
    label: 'Mis Aulas',
    path: '/teacher/classes',
    icon: 'School',
  },
  {
    id: 'monitoring',
    label: 'Monitoreo',
    path: '/teacher/monitoring',
    icon: 'User',
  },
  {
    id: 'assignments',
    label: 'Asignaciones',
    path: '/teacher/assignments',
    icon: 'Calendar',
  },
  {
    id: 'responses',
    label: 'Respuestas',
    path: '/teacher/responses',
    icon: 'ClipboardList',
  },
  {
    id: 'reviews',
    label: 'Revisiones M3-M5',
    path: '/teacher/reviews',
    icon: 'CheckCircle',
  },
  {
    id: 'progress',
    label: 'Progreso',
    path: '/teacher/progress',
    icon: 'TrendingUp',
  },
  {
    id: 'alerts',
    label: 'Alertas',
    path: '/teacher/alerts',
    icon: 'AlertTriangle',
  },
  {
    id: 'reports',
    label: 'Reportes',
    path: '/teacher/reports',
    icon: 'FileText',
  },
  {
    id: 'gamification',
    label: 'Gamificacion',
    path: '/teacher/gamification',
    icon: 'Trophy',
  },
];

ITEMS REMOVIDOS:

  1. students (id) - /teacher/students - Sera migrada a Monitoring (FASE 5B)
  2. analytics (id) - /teacher/analytics - Sera fusionada con Progress (FASE 5C)
  3. communication (id) - /teacher/communication - Bloqueada
  4. content (id) - /teacher/content - Bloqueada
  5. resources (id) - /teacher/resources - Stub

ITEMS MODIFICADOS:

  • Removido el asterisco (*) de los labels ya que las paginas estan funcionales

3. CAMBIOS EN ROUTER (App.tsx)

Ruta: /home/isem/workspace/projects/gamilit/apps/frontend/src/App.tsx

OPCION A: Mantener rutas (recomendado)

Las rutas se mantienen funcionales pero sin acceso desde el sidebar. Esto permite:

  • Acceso directo por URL si es necesario
  • No rompe bookmarks existentes
  • Facilita reactivacion futura

OPCION B: Agregar redirects

Si se prefiere redirigir las rutas eliminadas:

// Agregar despues de las rutas de teacher
<Route path="/teacher/students" element={<Navigate to="/teacher/monitoring" replace />} />
<Route path="/teacher/analytics" element={<Navigate to="/teacher/progress" replace />} />
<Route path="/teacher/communication" element={<Navigate to="/teacher/dashboard" replace />} />
<Route path="/teacher/content" element={<Navigate to="/teacher/dashboard" replace />} />
<Route path="/teacher/resources" element={<Navigate to="/teacher/dashboard" replace />} />

Recomendacion: Usar OPCION A para esta fase, agregar redirects en FASE 5B/5C


4. DEPENDENCIAS

Archivos que NO se modifican:

  • App.tsx - Las rutas permanecen (OPCION A)
  • Todos los archivos de paginas - No se eliminan
  • Hooks y componentes - Permanecen para futuro uso

Archivos que SI se modifican:

  • GamilitSidebar.tsx - Array teacherItems

5. PLAN DE PRUEBAS

5.1 Pruebas Manuales

Prueba_1_Sidebar_Teacher:
  precondicion: "Login como teacher"
  pasos:
    - Verificar que el sidebar muestra solo 9 items
    - Verificar que NO aparecen: Estudiantes, Analiticas, Comunicacion, Contenido, Recursos
    - Verificar que SI aparecen: Mis Aulas, Monitoreo, Asignaciones, Respuestas, Revisiones, Progreso, Alertas, Reportes, Gamificacion
  resultado_esperado: "Solo 9 items visibles"

Prueba_2_Navegacion_Directa:
  precondicion: "Login como teacher"
  pasos:
    - Navegar directamente a /teacher/students
    - Navegar directamente a /teacher/analytics
    - Navegar directamente a /teacher/communication
  resultado_esperado: "Las paginas cargan correctamente (OPCION A)"

Prueba_3_Dashboard:
  precondicion: "Login como teacher"
  pasos:
    - Navegar al Dashboard
    - Verificar que todas las tabs funcionan
    - Verificar que la navegacion desde Dashboard funciona
  resultado_esperado: "Dashboard funcional sin errores"

5.2 Criterios de Aceptacion

  • Sidebar muestra exactamente 9 items para teacher
  • No hay errores en consola
  • Navegacion entre paginas funciona correctamente
  • Las rutas directas siguen funcionando (si OPCION A)
  • Dashboard carga sin errores

6. ROLLBACK

En caso de necesitar revertir:

  1. Restaurar array teacherItems original en GamilitSidebar.tsx
  2. No hay otros archivos modificados

7. NOTAS ADICIONALES

Sobre los asteriscos (*) en labels:

El codigo actual usa asteriscos para indicar "en construccion". Se recomienda:

  • Remover todos los asteriscos para esta fase
  • Las paginas en el sidebar deben considerarse "completas" para el usuario

Sobre el orden de items:

El orden propuesto agrupa logicamente:

  1. Gestion: Mis Aulas
  2. Monitoreo: Monitoreo, Alertas
  3. Pedagogico: Asignaciones, Respuestas, Revisiones
  4. Analitica: Progreso, Reportes
  5. Gamificacion: Gamificacion

Estado: LISTO PARA IMPLEMENTAR Prerequisitos: Ninguno Siguiente fase: FASE 5B (Migracion Students)