File "README.md"

Full Path: C:/wamp64/www/Seleccion/Requerimientos/README.md
File size: 7.79 KB
MIME-type: text/plain
Charset: utf-8

# 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