# Sistema de Gesti贸n de Selecci贸n de Personal - Sanmarino Sistema web completo para la gesti贸n de requisiciones de personal y seguimiento del proceso de selecci贸n en 3 fases. ## 馃搵 Caracter铆sticas ### 1. M贸dulo de Requisiciones - 鉁?Formulario completo de solicitud de vacantes (basado en el documento FOR-A-GHU-02) - 鉁?Generaci贸n autom谩tica de c贸digos 煤nicos - 鉁?Panel de visualizaci贸n con filtros por estado - 鉁?Gesti贸n de estados: Pendiente, Aprobada, En Proceso, Cerrada - 鉁?Notificaciones por email cuando se encuentra candidato - 鉁?Estad铆sticas en tiempo real ### 2. Gesti贸n de Selecci贸n (3 Fases) #### Fase 1: Registro Inicial - Registro de candidatos con c茅dula, nombres, antecedentes y celular - **Sistema de alertas**: Detecta autom谩ticamente si un candidato ya ha estado en proceso - Contador de veces que el candidato ha sido procesado - Validaci贸n de antecedentes #### Fase 2: Entrevistas - Registro completo de quien refiere al candidato - Datos de la entrevista (centro de costos, 谩rea, cargo, ciudad) - Informaci贸n del supervisor/jefe que realiza la entrevista - Concepto y resultado de la entrevista - Fecha de entrevista #### Fase 3: Ex谩menes y Contrataci贸n - Registro de ex谩menes m茅dicos (Apto/No Apto) - Pol铆grafo (Aprobado/Rechazado/No Aplica) - Estado de contrataci贸n (Si/No) - Fecha de contrataci贸n - Observaciones finales ## 馃梻锔?Estructura del Proyecto ``` sanmarino-seleccion/ 鈹?鈹溾攢鈹€ index.php # Punto de entrada y router 鈹溾攢鈹€ README.md # Documentaci贸n 鈹?鈹溾攢鈹€ config/ 鈹? 鈹斺攢鈹€ Database.php # Configuraci贸n de base de datos 鈹?鈹溾攢鈹€ models/ 鈹? 鈹溾攢鈹€ Requisicion.php # Modelo de requisiciones 鈹? 鈹溾攢鈹€ Candidato.php # Modelo de candidatos 鈹? 鈹溾攢鈹€ Entrevista.php # Modelo de entrevistas (Fase 2) 鈹? 鈹斺攢鈹€ Examen.php # Modelo de ex谩menes (Fase 3) 鈹?鈹溾攢鈹€ controllers/ 鈹? 鈹溾攢鈹€ RequisicionController.php # Controlador de requisiciones 鈹? 鈹斺攢鈹€ CandidatoController.php # Controlador de candidatos 鈹?鈹溾攢鈹€ views/ 鈹? 鈹溾攢鈹€ requisicion/ 鈹? 鈹? 鈹溾攢鈹€ formulario.php # Formulario de solicitud 鈹? 鈹? 鈹斺攢鈹€ panel.php # Panel de requisiciones 鈹? 鈹?鈹? 鈹斺攢鈹€ candidato/ 鈹? 鈹斺攢鈹€ gestion.php # Gesti贸n de las 3 fases 鈹?鈹溾攢鈹€ js/ 鈹? 鈹斺攢鈹€ gestion.js # JavaScript para gesti贸n 鈹?鈹斺攢鈹€ sql/ 鈹斺攢鈹€ schema.sql # Script de base de datos ``` ## 馃殌 Instalaci贸n ### Requisitos - PHP 7.4 o superior - MySQL 5.7 o superior - Servidor web (Apache/Nginx) - Extensiones PHP: PDO, PDO_MySQL ### Pasos de Instalaci贸n 1. **Clonar o descargar el proyecto** ```bash cd /var/www/html/ # o en Windows: C:\xampp\htdocs\ ``` 2. **Crear la base de datos** ```bash mysql -u root -p < sql/schema.sql ``` O desde phpMyAdmin: - Crear una base de datos llamada `sanmarino_seleccion` - Importar el archivo SQL 3. **Configurar la conexi贸n a la base de datos** Editar el archivo `config/Database.php`: ```php private $host = 'localhost'; private $db_name = 'sanmarino_seleccion'; private $username = 'root'; // Tu usuario MySQL private $password = ''; // Tu contrase帽a MySQL ``` 4. **Configurar permisos (Linux)** ```bash chmod -R 755 /ruta/al/proyecto chown -R www-data:www-data /ruta/al/proyecto ``` 5. **Acceder al sistema** ``` http://localhost/sanmarino-seleccion/ ``` ## 馃摫 Uso del Sistema ### Panel de Requisiciones - **URL**: `http://localhost/sanmarino-seleccion/` - Ver todas las requisiciones - Filtrar por estado - Cambiar estado de requisiciones - Ver estad铆sticas ### Nueva Requisici贸n - **URL**: `http://localhost/sanmarino-seleccion/index.php?controller=requisicion&action=formulario` - Llenar todos los campos del formulario - Al enviar se genera autom谩ticamente un c贸digo 煤nico - El sistema notifica cuando se encuentran candidatos ### Gesti贸n de Selecci贸n - **URL**: `http://localhost/sanmarino-seleccion/index.php?controller=candidato&action=gestion` - **Fase 1**: Registrar nuevos candidatos - Aparecer谩 alerta si el candidato ya estuvo en proceso - Pasar candidatos aprobados a Fase 2 - **Fase 2**: Registrar entrevistas - Completar datos de la entrevista - Pasar candidatos aprobados a Fase 3 - **Fase 3**: Registrar ex谩menes y contrataci贸n - Registrar resultados m茅dicos y pol铆grafo - Marcar como contratado con fecha ## 馃敡 Caracter铆sticas T茅cnicas ### Patr贸n MVC - **Modelos**: Manejo de datos y l贸gica de negocio - **Vistas**: Interfaz de usuario (HTML/CSS/JS) - **Controladores**: L贸gica de aplicaci贸n y routing ### Base de Datos - 8 tablas principales - Triggers autom谩ticos para generaci贸n de c贸digos - Vistas para reportes - 脥ndices para optimizaci贸n - Relaciones con integridad referencial ### Seguridad - Prepared statements (prevenci贸n SQL Injection) - Validaci贸n de datos en cliente y servidor - Sanitizaci贸n de entradas - Control de errores ### Sistema de Alertas - Detecci贸n autom谩tica de candidatos repetidos - Contador de veces en proceso - Historial de participaci贸n en requisiciones ## 馃搳 Tablas de la Base de Datos | Tabla | Descripci贸n | |-------|-------------| | `usuarios` | Usuarios del sistema | | `requisiciones` | Solicitudes de vacantes | | `candidatos` | Candidatos en proceso (Fase 1) | | `entrevistas` | Informaci贸n de entrevistas (Fase 2) | | `examenes` | Ex谩menes y contrataci贸n (Fase 3) | | `alertas_candidato` | Historial de alertas | | `notificaciones` | Registro de notificaciones enviadas | ## 馃攧 Flujo del Proceso ``` 1. REQUISICI脫N 鈫? [Crear solicitud] 鈫?[Aprobar] 鈫?[En Proceso] 2. FASE 1: Registro 鈫? [Agregar candidato] 鈫?[Verificar antecedentes] 鈫?(Si existe alerta) 3. FASE 2: Entrevista 鈫? [Registrar entrevista] 鈫?[Evaluar] 鈫?(Si aprueba) 4. FASE 3: Ex谩menes 鈫? [Ex谩menes m茅dicos] 鈫?[Pol铆grafo] 鈫?[CONTRATADO] ``` ## 馃摟 Sistema de Notificaciones El sistema registra notificaciones cuando: - Se encuentra un candidato para una vacante - Se puede integrar con PHPMailer para env铆o real de emails Para activar el env铆o de emails: 1. Instalar PHPMailer: `composer require phpmailer/phpmailer` 2. Configurar SMTP en `RequisicionController.php` ## 馃帹 Personalizaci贸n ### Cambiar colores corporativos Editar en los archivos de vistas: ```css .navbar { background: #e53935; } /* Color principal */ ``` ### Agregar campos adicionales 1. Modificar el script SQL 2. Actualizar el modelo correspondiente 3. Agregar campos en la vista ## 馃摑 Credenciales por Defecto **Usuario Administrador** - Email: `admin@sanmarino.com` - Password: `password123` **Nota**: Cambiar estas credenciales en producci贸n ## 馃悰 Troubleshooting ### Error de conexi贸n a la base de datos - Verificar credenciales en `config/Database.php` - Verificar que MySQL est茅 corriendo - Verificar que la base de datos exista ### No se muestra el formulario - Verificar permisos de archivos - Verificar que mod_rewrite est茅 activo (Apache) - Revisar logs de error de PHP ### Alertas no funcionan - Verificar que los triggers est茅n creados - Revisar la tabla `alertas_candidato` ## 馃摓 Soporte Para reportar bugs o solicitar nuevas caracter铆sticas, contactar al equipo de desarrollo. ## 馃搫 Licencia Sistema desarrollado para uso interno de Sanmarino Gen茅tica Av铆cola. --- **Versi贸n**: 1.0 **脷ltima actualizaci贸n**: Enero 2026 **Desarrollado por**: Equipo de Desarrollo Sanmarino