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
Completar funcionalidades administrativas avanzadas
- Sistema de asignaciones de profesores
- Sistema de inscripciones de estudiantes
- Sistema de reportes básico
Implementar funcionalidades de Profesor
- Sistema de registro de asistencia
- Gestión de clases asignadas
Implementar funcionalidades de Estudiante
- Consulta de asistencia personal
- Vista de horarios
Prioridad Media
Mejoras de UX/UI
- Notificaciones en tiempo real
- Mejoras de responsividad
- Optimización de rendimiento
Funcionalidades Avanzadas
- Exportación de reportes (PDF/Excel)
- Sistema de notificaciones por email
- Dashboard con gráficos avanzados
Prioridad Baja
- 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