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