# Sistema de Capacitaciones AAT

## 📋 Descripción General

El Sistema de Capacitaciones de AAT es una plataforma completa y profesional para la gestión de capacitaciones, evaluaciones y seguimiento del desarrollo de competencias de los empleados. El sistema está integrado perfectamente con la plataforma AAT existente.

## 🏗️ Arquitectura del Sistema

### Base de Datos
- **training_lines**: Líneas de negocio de la empresa
- **training_charges**: Cargos asociados a cada línea
- **training_modules**: Módulos de capacitación
- **training_levels**: Niveles de evaluación (básico, intermedio, avanzado, experto)
- **training_topics**: Temas específicos dentro de cada módulo
- **training_questions**: Banco de preguntas para evaluaciones
- **training_evaluations**: Registro de evaluaciones realizadas
- **training_charges_modules**: Relación muchos a muchos entre cargos y módulos
- **training_user_modules**: Asignación de módulos a usuarios

### Modelos Eloquent
- `TrainingLine`: Gestión de líneas de negocio
- `TrainingCharge`: Gestión de cargos
- `TrainingModule`: Gestión de módulos de capacitación
- `TrainingLevel`: Configuración de niveles de evaluación
- `TrainingTopic`: Gestión de temas específicos
- `TrainingQuestion`: Banco de preguntas
- `TrainingEvaluation`: Registro de evaluaciones
- `TrainingUserModule`: Asignación de módulos a usuarios

## 🎯 Funcionalidades Principales

### Panel Administrativo
1. **Gestión de Líneas de Negocio**
   - Crear, editar, activar/desactivar líneas
   - Asociar cargos a líneas

2. **Gestión de Cargos**
   - Crear, editar, activar/desactivar cargos
   - Asignar módulos a cargos
   - Configurar orden y repetición de módulos

3. **Gestión de Módulos**
   - Crear, editar, activar/desactivar módulos
   - Configurar duración e intervalo de sanción
   - Asignar cargos a módulos

4. **Gestión de Niveles**
   - Configurar niveles de evaluación
   - Establecer número de preguntas, tiempo límite, puntuación mínima
   - Definir oportunidades de evaluación

5. **Gestión de Temas**
   - Crear temas dentro de módulos
   - Asignar niveles de dificultad
   - Organizar contenido de capacitación

6. **Gestión de Preguntas**
   - Banco de preguntas por tema
   - Múltiples opciones de respuesta
   - Explicaciones para respuestas correctas
   - Activación/desactivación de preguntas

7. **Gestión de Evaluaciones**
   - Ver todas las evaluaciones realizadas
   - Estadísticas por tema, cargo, usuario
   - Exportación de resultados
   - Revisión detallada de evaluaciones

### Portal de Usuario (Empleados)
1. **Dashboard de Capacitaciones**
   - Estadísticas personales
   - Módulos asignados
   - Progreso de evaluaciones

2. **Sistema de Evaluaciones**
   - Listado de temas disponibles
   - Evaluaciones con tiempo límite
   - Navegación entre preguntas
   - Guardado automático de respuestas

3. **Resultados y Retroalimentación**
   - Resultados inmediatos
   - Explicaciones de respuestas
   - Estadísticas de rendimiento
   - Oportunidades restantes

## 🚀 Características Técnicas

### Seguridad y Permisos
- Acceso diferenciado por roles (admin/empleado)
- Validación de sesiones de evaluación
- Prevención de salida accidental durante evaluaciones
- Control de oportunidades de evaluación

### Experiencia de Usuario
- Interfaz moderna y responsiva
- Navegación intuitiva
- Feedback visual en tiempo real
- Diseño consistente con AAT

### Funcionalidades Avanzadas
- Timer automático para evaluaciones
- Barra de progreso en tiempo real
- Navegación entre preguntas
- Guardado automático de respuestas
- Estadísticas detalladas

## 📊 Comandos Artisan Disponibles

### Gestión de Usuarios
```bash
# Listar usuarios sin cargo asignado
php artisan training:list-users-without-charge

# Asignar cargo a usuario
php artisan training:assign-charge {user_id} {charge_id}

# Listar cargos disponibles
php artisan training:list-charges
```

### Datos de Ejemplo
```bash
# Crear datos de ejemplo
php artisan db:seed --class=TrainingSeeder
```

## 🛠️ Instalación y Configuración

### 1. Migraciones
```bash
php artisan migrate
```

### 2. Datos de Ejemplo (Opcional)
```bash
php artisan db:seed --class=TrainingSeeder
```

### 3. Asignar Cargos a Usuarios
```bash
# Ver usuarios sin cargo
php artisan training:list-users-without-charge

# Ver cargos disponibles
php artisan training:list-charges

# Asignar cargo (ejemplo)
php artisan training:assign-charge 1 1
```

## 🎨 Interfaz de Usuario

### Navegación
- **Menú Principal**: Enlace "Capacitaciones" con ícono de diploma
- **Panel Admin**: Acceso completo a gestión desde menú administrativo
- **Portal Usuario**: Interfaz amigable para empleados

### Diseño
- **Responsivo**: Adaptable a dispositivos móviles
- **Tema Oscuro**: Compatible con modo oscuro de AAT
- **Consistente**: Diseño unificado con la plataforma existente

## 📈 Estadísticas y Reportes

### Métricas Disponibles
- Evaluaciones totales por período
- Tasa de aprobación por tema/cargo
- Promedio de puntuaciones
- Usuarios con evaluaciones pendientes
- Rendimiento por nivel de dificultad

### Exportación
- Reportes en Excel/CSV
- Filtros por fecha, tema, cargo, usuario
- Estadísticas comparativas

## 🔧 Configuración Avanzada

### Niveles de Evaluación
- **Básico**: 30 preguntas, 30 min, 90% aprobación
- **Intermedio**: 60 preguntas, 40 min, 90% aprobación
- **Avanzado**: 90 preguntas, 50 min, 90% aprobación
- **Experto**: 100 preguntas, 60 min, 90% aprobación

### Configuración de Módulos
- **Duración**: Horas estimadas de capacitación
- **Intervalo de Sanción**: Meses de vigencia
- **Repetición**: Configuración de módulos repetibles

## 🎯 Casos de Uso

### Para Administradores
1. Configurar líneas de negocio y cargos
2. Crear módulos de capacitación
3. Diseñar evaluaciones con preguntas
4. Monitorear progreso de empleados
5. Generar reportes de cumplimiento

### Para Empleados
1. Acceder a módulos asignados
2. Realizar evaluaciones en línea
3. Ver resultados y retroalimentación
4. Consultar historial de evaluaciones
5. Identificar áreas de mejora

## 🔄 Flujo de Trabajo

1. **Configuración Inicial**
   - Crear líneas de negocio
   - Definir cargos por línea
   - Configurar módulos de capacitación
   - Asignar cargos a usuarios

2. **Desarrollo de Contenido**
   - Crear temas dentro de módulos
   - Diseñar preguntas de evaluación
   - Configurar niveles de dificultad

3. **Ejecución de Capacitaciones**
   - Empleados acceden al portal
   - Realizan evaluaciones asignadas
   - Reciben retroalimentación inmediata

4. **Seguimiento y Mejora**
   - Administradores revisan estadísticas
   - Identifican áreas de mejora
   - Actualizan contenido según necesidades

## 🎉 Beneficios del Sistema

### Para la Empresa
- **Cumplimiento**: Seguimiento de capacitaciones obligatorias
- **Eficiencia**: Automatización de procesos de evaluación
- **Análisis**: Datos para toma de decisiones
- **Escalabilidad**: Sistema adaptable a crecimiento

### Para los Empleados
- **Accesibilidad**: Evaluaciones disponibles 24/7
- **Inmediatez**: Resultados y retroalimentación instantánea
- **Flexibilidad**: Autogestión del aprendizaje
- **Transparencia**: Visibilidad del progreso personal

## 🔮 Próximas Mejoras

- **Certificados Digitales**: Generación automática de certificados
- **Notificaciones**: Alertas de evaluaciones pendientes
- **Gamificación**: Sistema de puntos y logros
- **Integración**: Conectividad con sistemas externos
- **Mobile App**: Aplicación móvil nativa

---

**Sistema de Capacitaciones AAT** - Una solución completa y profesional para el desarrollo de competencias organizacionales. 