# 📘 MANUAL DE INSTRUCCIONES: SKILL CORPORATIVO & DESPLIEGUE EN CPANEL (BANAHOSTING)

---

## 📑 ÍNDICE GENERAL
1. [PARTE 1: Cómo Instalar y Utilizar el Skill "corporate-fullstack-rbac"](#parte-1-cómo-instalar-y-utilizar-el-skill-corporate-fullstack-rbac)
2. [PARTE 2: Guía Paso a Paso para Instalar en cPanel de BanaHosting](#parte-2-guía-paso-a-paso-para-instalar-en-cpanel-de-banahosting)
3. [PARTE 3: Recursos y Archivos de Descarga Listos](#parte-3-recursos-y-archivos-de-descarga-listos)

---

# PARTE 1: CÓMO INSTALAR Y UTILIZAR EL SKILL "corporate-fullstack-rbac"

Este Skill contiene la **arquitectura estándar reutilizable** para que cualquier nuevo sistema que desarrolles tenga desde el inicio:
- Sistema de **Usuarios, Roles y Permisos Granulares (RBAC)** por menú y función (`puede_ver`, `puede_crear`, `puede_editar`, `puede_eliminar`, `puede_exportar`).
- Interfaz **SPA moderna** con ocultamiento reactivo de menús y modal de **Matriz Gráfica de Permisos**.
- Backend seguro con **Node.js, Express, JWT y Bcrypt**.
- Motor de reportes en **Excel Corporativo (`exceljs`)** con logo incrustado, cabeceras combinadas de 2 niveles y fórmulas vivas.

---

### 1.1. Ubicaciones del Skill en tu Computadora

El Skill puede guardarse en dos ubicaciones estratégicas:
1. **Global (Automático para cualquier nuevo proyecto):**
   `C:\Users\<TuUsuario>\.gemini\config\skills\corporate-fullstack-rbac\SKILL.md` (o `~/.gemini/config/skills/...`)
2. **Local (En el proyecto actual):**
   `.agents\skills\corporate-fullstack-rbac\SKILL.md`

---

### 1.2. Cómo usar el Skill en un Nuevo Proyecto

Cuando inicies un nuevo sistema en otra carpeta o para otro cliente, simplemente inicia tu conversación con el asistente diciendo:

> *"Inicia este nuevo proyecto siguiendo las directrices de la skill corporate-fullstack-rbac"*

El asistente leerá automáticamente las plantillas y configurará:
1. Las tablas base en la base de datos (`usuarios`, `roles`, `rol_permisos`).
2. El middleware de backend `requirePermission(modulo, accion)`.
3. El frontend con el sidebar dinámico y la matriz interactiva de roles.

---

### 1.3. Cómo llevar este Skill a otra computadora
Si cambias de máquina o quieres compartirlo:
1. Copia el archivo `corporate-fullstack-rbac-skill.zip` o la carpeta `corporate-fullstack-rbac`.
2. Pégalo en la ruta de configuración global de la nueva PC:
   `~/.gemini/config/skills/corporate-fullstack-rbac/SKILL.md`
   *(En Windows: `C:\Users\<TuUsuario>\.gemini\config\skills\corporate-fullstack-rbac\SKILL.md`)*

---

# PARTE 2: GUÍA PASO A PASO PARA INSTALAR EN CPANEL (BANAHOSTING)

El proyecto ya está empaquetado en el archivo liviano `pulsocorp_cpanel_deploy.zip` (~380 KB, sin `node_modules`).

---

### 🔹 PASO 1: Crear la Base de Datos MySQL en cPanel
1. Entra a tu **cPanel** de BanaHosting.
2. Ve a la sección **Bases de Datos** $\rightarrow$ **Bases de datos MySQL®**.
3. **Crear base de datos:** Escribe un nombre (ej. `contador`). El nombre completo será algo como `tuusuario_contador`. Haz clic en **Crear base de datos**.
4. **Crear usuario MySQL:** En la misma pantalla, baja a *Usuarios MySQL*. Crea un usuario (ej. `admin_contador`) y define una contraseña segura. **Apunta la contraseña**.
5. **Vincular usuario:** En *Añadir usuario a la base de datos*, selecciona el usuario y la base de datos creados. Haz clic en **Añadir**, marca **TODOS LOS PRIVILEGIOS (ALL PRIVILEGES)** y haz clic en **Hacer cambios**.
6. **Importar tablas iniciales:**
   - Vuelve al inicio de cPanel y entra a **phpMyAdmin**.
   - Haz clic sobre la base de datos creada en el panel izquierdo.
   - Ve a la pestaña superior **Importar (Import)**.
   - Selecciona el archivo `database_schema_pulsocorp.sql` y haz clic en **Importar** (abajo del todo).

---

### 🔹 PASO 2: Crear la Aplicación Node.js en cPanel
1. En cPanel, ve a la sección **Software** $\rightarrow$ **Setup Node.js App** (o *Configurar aplicación Node.js*).
2. Haz clic en el botón azul **Create Application**.
3. Completa los campos:
   - **Node.js version:** Selecciona `18.x` o `20.x`.
   - **Application mode:** `Production`.
   - **Application root:** Escribe el nombre de la carpeta (ej. `reportes` o `pulsocorp`).
   - **Application URL:** Selecciona tu dominio o subdominio (ej. `reportes.tudominio.com`).
   - **Application startup file:** Escribe: `server.js`
4. Haz clic en **CREATE** (arriba a la derecha).

---

### 🔹 PASO 3: Subir los Archivos del Proyecto
1. En cPanel, entra al **Administrador de Archivos (File Manager)**.
2. Entra a la carpeta de tu aplicación creada en el Paso 2 (ej. `/home/tuusuario/reportes`).
3. Haz clic en **Cargar (Upload)** arriba y sube el archivo comprimido `pulsocorp_cpanel_deploy.zip`.
4. Una vez subido al 100%, haz clic derecho sobre `pulsocorp_cpanel_deploy.zip` y selecciona **Extract (Extraer)**.

---

### 🔹 PASO 4: Configurar el Archivo `.env` en el Servidor
1. En el Administrador de Archivos, activa la vista de archivos ocultos (en la esquina superior derecha: **Configuración** $\rightarrow$ marcar **Mostrar archivos ocultos (dotfiles)** $\rightarrow$ Guardar).
2. Crea o edita el archivo `.env` en la raíz de la carpeta de la aplicación con los datos del Paso 1:

```ini
PORT=3000
NODE_ENV=production

# Conexión a Base de Datos MySQL
DB_HOST=localhost
DB_PORT=3306
DB_USER=tuusuario_admin_contador
DB_PASSWORD=tu_password_de_mysql
DB_NAME=tuusuario_contador

# Clave secreta para Tokens JWT
JWT_SECRET=super_secret_corporate_key_2026_pulsocorp_prod
```
3. Guarda el archivo `.env`.

---

### 🔹 PASO 5: Instalar Dependencias (`Run NPM Install`)
1. Vuelve a **Setup Node.js App** en cPanel.
2. Haz clic en el icono del **lápiz (Editar)** de tu aplicación.
3. Haz clic en el botón **Run NPM Install** (o *NPM Install*). cPanel instalará todas las librerías automáticamente en 1 minuto.
4. Haz clic en el botón superior **RESTART** (Reiniciar aplicación).

---

### 🔹 PASO 6: Activar Certificado SSL (HTTPS)
1. En cPanel, busca **SSL/TLS Status**.
2. Selecciona tu dominio o subdominio y haz clic en **Run AutoSSL**.
3. En pocos minutos tu sitio web cargará seguro con `https://`.

---

### 🔑 Credenciales de Acceso Inicial
- **URL:** `https://tudominio.com` (o subdominio configurado)
- **Usuario Administrador:** `admin@contador.corp`
- **Contraseña:** `Admin2026!`

*(Puedes modificar estos accesos o crear nuevos roles y usuarios desde la pestaña **Gestión de Usuarios** y **Roles y Permisos**)*.

---

# PARTE 3: RECURSOS Y ARCHIVOS DE DESCARGA LISTOS

Todos estos archivos ya se encuentran generados en la raíz del proyecto para tu uso inmediato:

1. 📦 **Paquete Completo para cPanel:** `pulsocorp_cpanel_deploy.zip` *(~380 KB)*
2. 📄 **Script SQL de Base de Datos:** `database_schema_pulsocorp.sql`
3. ⚙️ **Plantilla de Variables de Entorno:** `.env.production.example`
4. 🛡️ **Skill Completo en ZIP:** `corporate-fullstack-rbac-skill.zip`
5. 📘 **Manual de Instrucciones:** `INSTRUCCIONES.md`
