Saltar al contenido principal

🏗️ Cómo Funciona PulseHub

PulseHub es una aplicación web clásica MVC (Modelo-Vista-Controlador) con una estructura plana y legible. No hay framework — el enrutamiento, acceso a base de datos, autenticación y renderizado se implementan directamente en PHP.

Navegador / Proveedor de Canal
│
▼
index.php ← Controlador frontal
│
▼
app/router.php ← URL → [Controlador, método]
│
▼
app/Controllers/ ← Lógica de negocio
│
┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(plantillas HTML) (consultas PDO MySQL)

Los Cuatro Tipos de Solicitud​

  1. Solicitudes de Página — GET a /inbox, /contacts, etc. → carga HTML + JS
  2. Solicitudes API — GET/POST/PATCH/DELETE a /api/... → devuelve JSON
  3. Solicitudes de Webhook — POST de proveedores a /webhooks/{type}/{id} → procesa mensajes entrantes
  4. Stream SSE — conexión persistente a /sse → envía eventos en tiempo real al navegador

Flujo de Datos: Mensaje Entrante​

1. El cliente envía un mensaje por WhatsApp
2. Meta hace POST a /webhooks/whatsapp/{channel_id}
3. WebhookController verifica la firma, normaliza el payload
4. Busca/crea contacto, busca/crea conversación
5. Guarda el mensaje, dispara eventos SSE, encola eventos de automatización
6. Devuelve 200 a Meta
7. SSE envía a todos los navegadores de agentes conectados en 2 segundos

Flujo de Datos: Mensaje Saliente​

1. El agente escribe una respuesta y hace clic en Enviar
2. El navegador hace POST a /api/conversations/{id}/messages
3. Guarda el mensaje, llama a la API del canal (WhatsApp, Twilio, etc.)
4. Envía evento SSE a otros agentes
5. Devuelve 201