# 📘 Guía de Instalación — Sistema de Gestión de Documentación ## Requisitos del Sistema | Requisito | Mínimo | |---|---| | PHP | 8.0+ | | MySQL / MariaDB | 5.7+ / 10.3+ | | Servidor Web | Apache 2.4+ (con mod_rewrite) | | Extensiones PHP | PDO, PDO_MySQL, mbstring, openssl, fileinfo | --- ## Paso 1: Clonar / Copiar el Proyecto Copie la carpeta `ProyectoGestion` a la raíz web de su servidor: - **XAMPP (Windows):** `C:\xampp\htdocs\ProyectoGestion\` - **LAMP (Linux):** `/var/www/html/ProyectoGestion/` - **cPanel:** Carpeta `public_html/ProyectoGestion/` --- ## Paso 2: Crear la Base de Datos 1. Abra **phpMyAdmin** o el cliente MySQL de su preferencia. 2. Cree una nueva base de datos llamada `gestion_documentos` con codificación `utf8mb4`. 3. Importe el archivo: `database/gestion_documentos.sql` ```sql -- Desde línea de comando: mysql -u root -p -e "CREATE DATABASE gestion_documentos CHARACTER SET utf8mb4;" mysql -u root -p gestion_documentos < database/gestion_documentos.sql ``` --- ## Paso 3: Configurar Variables de Entorno 1. Edite el archivo `.env` (ya creado desde `.env.example`): ```ini DB_HOST=localhost DB_NAME=gestion_documentos DB_USER=root DB_PASS=SU_CONTRASEÑA APP_URL=http://localhost/ProyectoGestion APP_SECRET_KEY=GENERE_UNA_CLAVE_ALEATORIA_DE_64_CARACTERES MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=su_correo@gmail.com MAIL_PASSWORD=su_contraseña_de_aplicacion INSTITUCION_NOMBRE=Nombre de su Institución ``` > ⚠️ **NUNCA** suba el archivo `.env` a Git ni repositorios públicos. --- ## Paso 4: Instalar Dependencias (Librerías) Las librerías PHP van en la carpeta `lib/`. Descárguelas manualmente: ### PHPMailer (para correos) ```bash # Con Composer: composer require phpmailer/phpmailer # O descargue desde: https://github.com/PHPMailer/PHPMailer/releases # Extraiga en: lib/PHPMailer/ ``` ### DomPDF (para PDF) ```bash # Con Composer: composer require dompdf/dompdf # O descargue desde: https://github.com/dompdf/dompdf/releases # Extraiga en: lib/dompdf/ ``` ### PhpSpreadsheet (para Excel – opcional) ```bash composer require phpoffice/phpspreadsheet ``` --- ## Paso 5: Permisos de Carpetas En Linux/Mac, asigne permisos de escritura: ```bash chmod -R 755 ProyectoGestion/ chmod -R 775 ProyectoGestion/uploads/ chmod -R 775 ProyectoGestion/exports/ chmod -R 775 ProyectoGestion/logs/ ``` --- ## Paso 6: Configurar el Cron Job (Alertas) Para recibir alertas automáticas, configure una tarea programada: **Linux (crontab):** ```bash crontab -e # Agregar esta línea (ejecuta a las 8 AM todos los días): 0 8 * * * php /ruta/completa/ProyectoGestion/cron/enviar_alertas.php ``` **Windows Task Scheduler:** - Acción: `php.exe C:\xampp\htdocs\ProyectoGestion\cron\enviar_alertas.php` - Activador: Diariamente a las 8:00 AM **Prueba manual desde navegador:** ``` http://localhost/ProyectoGestion/cron/enviar_alertas.php?secret=SU_CLAVE_SECRETA ``` --- ## Paso 7: Primer Acceso Acceda a la URL del sistema: ``` http://localhost/ProyectoGestion/ ``` **Credenciales de administrador por defecto:** | Campo | Valor | |---|---| | **Usuario** | `admin` | | **Contraseña** | `Admin@2026` | > 🔐 **CAMBIAR LA CONTRASEÑA INMEDIATAMENTE** después del primer acceso. > Ir a: Perfil → Cambiar Contraseña --- ## Paso 8: Configuración Inicial 1. Ir a **Usuarios** → Crear usuarios del sistema 2. Ir a **Alertas** → Configurar tiempos de notificación 3. Subir logo institucional en `assets/img/logo.png` 4. Actualizar `INSTITUCION_NOMBRE` en `.env` --- ## Estructura de Archivos Importantes | Archivo | Descripción | |---|---| | `.env` | Configuración del sistema (NO subir a Git) | | `database/gestion_documentos.sql` | Script SQL completo | | `cron/enviar_alertas.php` | Script de alertas automáticas | | `uploads/` | Documentos adjuntos (protegido) | | `exports/` | Respaldos y exportaciones | | `logs/` | Logs del sistema | --- ## Solución de Problemas Comunes | Error | Solución | |---|---| | `Error de conexión a la BD` | Verificar credenciales en `.env` | | `403 Forbidden en uploads` | Revisar `.htaccess` y permisos | | `Correos no se envían` | Verificar credenciales SMTP, `MAIL_PASSWORD` debe ser "contraseña de app" si usa Gmail | | `PDF no descarga` | Instalar librería DomPDF en `lib/dompdf/` | | `Modo debug` | Cambiar `APP_DEBUG=true` en `.env` para ver errores |