ROADMAP.md 8.6 KB

TAPIR - Sistema de Gestión de Asistencia Estudiantil

Roadmap de Desarrollo

📋 Resumen del Proyecto

TAPIR es un sistema integral de gestión de asistencia estudiantil desarrollado con Next.js 15, TypeScript, Prisma ORM y PostgreSQL. El sistema maneja tres roles principales: Administradores, Profesores y Estudiantes.


✅ Completado

1. Estructura Base del Proyecto ✅

  • Estado: Completado
  • Descripción: Proyecto Next.js 15 con TypeScript configurado
  • Archivos principales:
    • package.json - Configuración de dependencias y scripts
    • tsconfig.json - Configuración de TypeScript
    • next.config.ts - Configuración de Next.js
    • eslint.config.mjs - Configuración de ESLint
    • postcss.config.mjs - Configuración de PostCSS

2. Base de Datos y ORM ✅

  • Estado: Completado
  • Descripción: Prisma ORM configurado con PostgreSQL
  • Archivos implementados:
    • prisma/schema.prisma - Esquema completo de base de datos
    • prisma/migrations/ - Migraciones de base de datos
    • prisma/seed.ts - Script de población inicial
    • src/lib/prisma.ts - Cliente de Prisma
  • Modelos implementados:
    • Users (Usuarios con roles)
    • Periods (Periodos académicos)
    • Partials (Parciales)
    • Classes (Materias)
    • Sections (Secciones)
    • Teachers (Profesores)
    • Students (Estudiantes)
    • TeacherAssignments (Asignaciones)
    • StudentEnrollments (Inscripciones)
    • Attendances (Asistencias)

3. UI Framework y Componentes ✅

  • Estado: Completado
  • Descripción: shadcn/ui configurado con TailwindCSS v4
  • Archivos implementados:
    • components.json - Configuración de shadcn/ui
    • src/app/globals.css - Estilos globales
    • src/lib/utils.ts - Utilidades para clases CSS
  • Componentes UI disponibles:
    • Button, Card, Input, Label, Form
    • Dialog, Alert Dialog, Sheet
    • Table, Separator, Switch
    • Tooltip, Sidebar

4. Sistema de Autenticación ✅

  • Estado: Completado
  • Descripción: NextAuth.js con autenticación por credenciales
  • Archivos implementados:
    • src/lib/auth.ts - Configuración de NextAuth
    • src/middleware.ts - Middleware de protección de rutas
    • src/app/api/auth/[...nextauth]/route.ts - API de autenticación
    • src/app/auth/signin/page.tsx - Página de inicio de sesión
    • src/components/providers/session-provider.tsx - Proveedor de sesión
  • Características:
    • Autenticación basada en JWT
    • Protección de rutas por rol
    • Redirección automática según rol
    • Encriptación de contraseñas con bcrypt

5. Layout y Componentes Base ✅

  • Estado: Completado
  • Descripción: Sistema de layout responsivo con sidebar
  • Archivos implementados:
    • src/components/layout/main-layout.tsx - Layout principal
    • src/components/layout/sidebar.tsx - Sidebar con navegación por rol
    • src/components/layout/header.tsx - Header con título y acciones
  • Características:
    • Sidebar responsivo con menús específicos por rol
    • Header dinámico con información de usuario
    • Layout adaptativo para móviles
    • Navegación contextual según permisos

6. Dashboards por Rol ✅

  • Estado: Completado
  • Descripción: Dashboards específicos para cada tipo de usuario
  • Archivos implementados:
    • src/app/admin/page.tsx - Dashboard administrativo
    • src/app/teacher/page.tsx - Dashboard de profesor
    • src/app/student/page.tsx - Dashboard de estudiante
    • src/app/page.tsx - Página de bienvenida con redirección
  • Características:
    • Estadísticas específicas por rol
    • Datos mock para demostración
    • Interfaz intuitiva y moderna
    • Protección de acceso por rol

7. Datos de Prueba ✅

  • Estado: Completado
  • Descripción: Base de datos poblada con datos iniciales
  • Usuarios creados:
    • Administrador: admin@universidad.edu / admin123
    • Profesor: profesor@universidad.edu / teacher123
    • Estudiante: estudiante@universidad.edu / student123
  • Datos incluidos:
    • Periodo académico 2024
    • 3 parciales configurados
    • 3 materias con secciones
    • Usuarios de ejemplo para cada rol

8. Funcionalidades del Rol Administrador ✅

  • Estado: Mayormente completado
  • Descripción: Implementación de funcionalidades administrativas
  • Dashboard: ✅ Completado
  • Implementado:
    • ✅ Gestión de usuarios (/admin/users) - CRUD completo con validaciones
    • ✅ Gestión de periodos académicos (/admin/periods) - CRUD completo con toggle activo/inactivo
    • ✅ Gestión de clases y materias (/admin/classes) - CRUD completo
    • ✅ Gestión de secciones (/admin/sections) - CRUD completo
    • ✅ Gestión de asignaciones de profesores (/admin/teacher-assignments)
    • ✅ Gestión de inscripciones de estudiantes (/admin/student-enrollments)
    • ✅ Sistema de reportes (/admin/reports)
  • Pendiente:
    • Configuración del sistema (/admin/settings)

📋 Pendiente

Funcionalidades del Rol Profesor 📝

  • Estado: Pendiente
  • Descripción: Implementación de funcionalidades para profesores
  • Dashboard: ✅ Completado
  • Implementado:
    • ✅ Visualización de clases/secciones asignadas (/teacher/assignments)
    • ✅ Sistema de registro de asistencia (/teacher/attendance)
    • ✅ Reportes de asistencia por clase (/teacher/reports)
    • ✅ Exportación de datos
  • Por implementar:
    • Gestión de perfil (/teacher/profile)

Funcionalidades del Rol Estudiante 📝

  • Estado: Pendiente
  • Descripción: Implementación de funcionalidades para estudiantes
  • Dashboard: ✅ Completado
  • Implementado:
    • ✅ Vista de clases matriculadas (/student/classes)
    • ✅ Historial de asistencia (/student/attendance)
  • Por implementar:
    • Consulta de horarios (/student/schedule)
    • Gestión de perfil (/student/profile)
    • Notificaciones de asistencia

Testing y Build 📝

  • Estado: Pendiente
  • Descripción: Pruebas y preparación para producción
  • Por implementar:
    • Configuración de testing (Jest/Vitest)
    • Pruebas unitarias para componentes
    • Pruebas de integración para API
    • Pruebas end-to-end (Playwright/Cypress)
    • Configuración de CI/CD
    • Documentación de deployment

🎯 Próximos Pasos

Prioridad Alta

  1. Completar funcionalidades administrativas avanzadas

    • Sistema de asignaciones de profesores
    • Sistema de inscripciones de estudiantes
    • Sistema de reportes básico
  2. Implementar funcionalidades de Profesor

    • Sistema de registro de asistencia
    • Gestión de clases asignadas
  3. Implementar funcionalidades de Estudiante

    • Consulta de asistencia personal
    • Vista de horarios

Prioridad Media

  1. Mejoras de UX/UI

    • Notificaciones en tiempo real
    • Mejoras de responsividad
    • Optimización de rendimiento
  2. Funcionalidades Avanzadas

    • Exportación de reportes (PDF/Excel)
    • Sistema de notificaciones por email
    • Dashboard con gráficos avanzados

Prioridad Baja

  1. Testing y Calidad
    • Cobertura de pruebas completa
    • Documentación técnica
    • Guías de usuario

📊 Progreso General

  • Completado: 87.5% (7/8 tareas principales)
  • En progreso: 12.5% (1/8 tareas principales)
  • Pendiente: 0% (0/8 tareas principales)

Desglose de Funcionalidades Administrativas

  • Funcionalidades básicas: ✅ 100% completado (4/4)
    • Gestión de usuarios, periodos, clases y secciones
  • Funcionalidades avanzadas: 🔄 0% completado (0/4)
    • Asignaciones, inscripciones, reportes y configuración

Arquitectura Técnica ✅

  • ✅ Next.js 15 con App Router
  • ✅ TypeScript para type safety
  • ✅ Prisma ORM con PostgreSQL
  • ✅ NextAuth.js para autenticación
  • ✅ shadcn/ui + TailwindCSS para UI
  • ✅ Middleware para protección de rutas
  • ✅ Estructura modular y escalable

Base de Datos ✅

  • ✅ Esquema completo definido
  • ✅ Relaciones entre entidades
  • ✅ Migraciones configuradas
  • ✅ Datos de prueba poblados
  • ✅ Índices y constraints

🔧 Configuración de Desarrollo

Comandos Disponibles

# Desarrollo
npm run dev          # Servidor de desarrollo
npm run build        # Build de producción
npm run start        # Servidor de producción
npm run lint         # Linting

# Base de datos
npm run db:seed      # Poblar base de datos
npx prisma studio    # Interface gráfica de BD
npx prisma migrate   # Ejecutar migraciones

Variables de Entorno Requeridas

DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="..."
NEXTAUTH_URL="http://localhost:3000"

Última actualización: Enero 2025
Versión: 0.1.0
Estado: En desarrollo activo