# Lista de Verificación para Despliegue en Producción
## Sistema de Inventario Forestal de Guatemala V1.0

Esta lista de verificación asegura que todos los aspectos críticos estén configurados correctamente antes del despliegue en producción.

## ✅ Pre-Despliegue

### Preparación del Entorno
- [ ] Verificar requisitos del servidor (PHP 7.4+, MySQL 5.7+, extensiones)
- [ ] Confirmar acceso a cPanel y phpMyAdmin
- [ ] Verificar espacio en disco disponible (mínimo 1GB)
- [ ] Confirmar capacidad de configurar cron jobs
- [ ] Verificar disponibilidad de SSL/HTTPS

### Preparación de Archivos
- [ ] Crear backup completo del código fuente
- [ ] Configurar archivo `.env.production` con datos reales
- [ ] Verificar permisos de archivos y directorios
- [ ] Validar que archivos sensibles estén protegidos
- [ ] Comprimir archivos para subida (opcional)

## ✅ Despliegue

### Subida de Archivos
- [ ] Subir todos los archivos a `public_html/`
- [ ] Verificar que `.htaccess` se subió correctamente
- [ ] Confirmar que `php.ini` está en el directorio raíz
- [ ] Verificar estructura de directorios completa

### Configuración de Base de Datos
- [ ] Crear base de datos en cPanel
- [ ] Crear usuario de base de datos con privilegios completos
- [ ] Actualizar credenciales en `.env`
- [ ] Verificar conexión a base de datos

### Configuración de Permisos
```bash
chmod 755 uploads/
chmod 755 logs/
chmod 755 cache/
chmod 755 backups/
chmod 644 .htaccess
chmod 644 php.ini
chmod 644 .env
```

### Ejecución del Instalador
- [ ] Acceder a `https://tudominio.com/install.php`
- [ ] Completar configuración de base de datos
- [ ] Crear usuario administrador inicial
- [ ] Verificar creación de tablas
- [ ] Confirmar generación de archivo de configuración

## ✅ Post-Despliegue

### Verificación Funcional
- [ ] Acceder a la aplicación principal
- [ ] Probar login con usuario administrador
- [ ] Verificar carga de especies predefinidas
- [ ] Probar creación de proyecto de prueba
- [ ] Verificar funcionalidad offline (PWA)
- [ ] Probar sincronización de datos

### Configuración de Seguridad
- [ ] Activar SSL/HTTPS en cPanel
- [ ] Configurar redirección forzada a HTTPS
- [ ] Verificar que archivos sensibles no sean accesibles
- [ ] Probar headers de seguridad
- [ ] Configurar notificaciones de seguridad

### Configuración de Cron Jobs
```bash
# Backup completo diario (2:00 AM)
0 2 * * * /usr/bin/php /home/usuario/public_html/scripts/backup-database.php

# Backup incremental cada 6 horas
0 */6 * * * /usr/bin/php /home/usuario/public_html/scripts/backup-database.php?type=incremental

# Limpieza de logs semanal (Domingos 3:00 AM)
0 3 * * 0 /usr/bin/php /home/usuario/public_html/scripts/cleanup-logs.php

# Limpieza de cache diaria (1:00 AM)
0 1 * * * /usr/bin/php /home/usuario/public_html/scripts/cache-cleanup.php

# Monitoreo cada 15 minutos
*/15 * * * * /usr/bin/php /home/usuario/public_html/scripts/system-monitor.php
```

### Configuración de Email
- [ ] Configurar SMTP en `.env`
- [ ] Probar envío de notificaciones
- [ ] Configurar email para alertas de sistema
- [ ] Verificar formato de emails

## ✅ Verificación de Rendimiento

### Optimización
- [ ] Verificar compresión GZIP/Brotli activa
- [ ] Confirmar cache de navegador configurado
- [ ] Probar velocidad de carga de páginas
- [ ] Verificar optimización de imágenes
- [ ] Confirmar minificación de CSS/JS

### Monitoreo
- [ ] Ejecutar monitoreo inicial del sistema
- [ ] Verificar logs de errores vacíos
- [ ] Confirmar funcionamiento de backups automáticos
- [ ] Probar alertas de sistema
- [ ] Verificar métricas de rendimiento

## ✅ Pruebas de Usuario

### Funcionalidad Básica
- [ ] Registro y login de usuarios
- [ ] Creación y gestión de proyectos
- [ ] Gestión de rodales
- [ ] Carga de documentos PDF
- [ ] Generación de reportes

### Funcionalidad Móvil
- [ ] Instalación como PWA en móvil
- [ ] Funcionamiento offline completo
- [ ] Captura GPS automática
- [ ] Sincronización de datos
- [ ] Interfaz responsiva

### Roles y Permisos
- [ ] Acceso de Administrador
- [ ] Acceso de Regente Forestal
- [ ] Acceso de Técnico de Campo
- [ ] Restricciones por rol
- [ ] Gestión de usuarios

## ✅ Documentación y Capacitación

### Documentación
- [ ] Manual de usuario actualizado
- [ ] Documentación de API disponible
- [ ] Guía de administración del sistema
- [ ] Procedimientos de backup y restauración
- [ ] Guía de solución de problemas

### Capacitación
- [ ] Capacitación de administradores
- [ ] Capacitación de regentes forestales
- [ ] Capacitación de técnicos de campo
- [ ] Documentación de procesos
- [ ] Material de referencia rápida

## ✅ Plan de Contingencia

### Backups
- [ ] Backup inicial completo creado
- [ ] Procedimiento de restauración probado
- [ ] Backups automáticos funcionando
- [ ] Almacenamiento de backups seguro
- [ ] Retención de backups configurada

### Monitoreo
- [ ] Alertas de sistema configuradas
- [ ] Monitoreo de uptime activo
- [ ] Logs de errores monitoreados
- [ ] Métricas de rendimiento registradas
- [ ] Procedimientos de escalación definidos

## ✅ Go-Live

### Verificación Final
- [ ] Todos los elementos anteriores completados
- [ ] Pruebas de carga realizadas
- [ ] Plan de rollback preparado
- [ ] Equipo de soporte disponible
- [ ] Comunicación a usuarios programada

### Activación
- [ ] Modo mantenimiento desactivado
- [ ] DNS apuntando al servidor correcto
- [ ] SSL certificado válido y activo
- [ ] Monitoreo en tiempo real activo
- [ ] Equipo de soporte en standby

## 📞 Contactos de Emergencia

### Técnico
- **Desarrollador Principal**: [email/teléfono]
- **Administrador de Sistema**: [email/teléfono]
- **Soporte de Hosting**: [email/teléfono]

### Funcional
- **Administrador del Sistema**: [email/teléfono]
- **Usuario Principal INAB**: [email/teléfono]
- **Coordinador del Proyecto**: [email/teléfono]

## 📊 Métricas de Éxito

### Técnicas
- [ ] Tiempo de respuesta < 3 segundos
- [ ] Uptime > 99.5%
- [ ] Errores < 1% de requests
- [ ] Backups exitosos diarios
- [ ] Sincronización offline funcional

### Funcionales
- [ ] Usuarios pueden completar flujo completo
- [ ] Datos se sincronizan correctamente
- [ ] Reportes se generan sin errores
- [ ] PWA funciona offline
- [ ] GPS captura coordenadas correctamente

---

**📝 NOTAS**:
- Completar esta lista antes de considerar el despliegue exitoso
- Mantener registro de fecha y responsable de cada verificación
- Documentar cualquier desviación o problema encontrado
- Actualizar procedimientos basado en lecciones aprendidas

**⚠️ IMPORTANTE**: No proceder con go-live hasta que todos los elementos estén verificados y funcionando correctamente.