176 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📘 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 |