🏗️ 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
- Seitenanfragen — GET an
/inbox,/contacts, etc. → lädt HTML + JS - API-Anfragen — GET/POST/PATCH/DELETE an
/api/...→ gibt JSON zurück - Webhook-Anfragen — POST von Anbietern an
/webhooks/{type}/{id}→ verarbeitet eingehende Nachrichten - 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