Zum Hauptinhalt springen

🏗️ Wie PulseHub funktioniert

PulseHub ist eine klassische MVC (Model-View-Controller)-Webanwendung mit einer flachen, lesbaren Struktur. Es gibt kein Framework — Routing, Datenbankzugriff, Authentifizierung und Rendering sind alle direkt in PHP implementiert.

Browser / Kanalanbieter


index.php ← Front Controller


app/router.php ← URL → [Controller, Methode]


app/Controllers/ ← Geschäftslogik

┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(HTML-Templates) (PDO MySQL-Abfragen)

Die vier Request-Typen

  1. Seitenanfragen — GET an /inbox, /contacts, etc. → lädt HTML + JS
  2. API-Anfragen — GET/POST/PATCH/DELETE an /api/... → gibt JSON zurück
  3. Webhook-Anfragen — POST von Anbietern an /webhooks/{type}/{id} → verarbeitet eingehende Nachrichten
  4. SSE-Stream — persistente Verbindung zu /sse → sendet Echtzeit-Events an den Browser

Datenfluss: Eingehende Nachricht

1. Kunde sendet Nachricht über WhatsApp
2. Meta sendet POST an /webhooks/whatsapp/{channel_id}
3. WebhookController verifiziert Signatur, normalisiert Payload
4. Findet/erstellt Kontakt, findet/erstellt Konversation
5. Speichert Nachricht, löst SSE-Events aus, reiht Automatisierungs-Events ein
6. Gibt 200 an Meta zurück
7. SSE sendet an alle verbundenen Agenten-Browser innerhalb von 2 Sekunden

Datenfluss: Ausgehende Nachricht

1. Agent tippt Antwort und klickt Senden
2. Browser sendet POST an /api/conversations/{id}/messages
3. Speichert Nachricht, ruft Kanal-API auf (WhatsApp, Twilio, etc.)
4. Sendet SSE-Event an andere Agenten
5. Gibt 201 zurück