🏗️ Comment PulseHub Fonctionne
PulseHub est une application web classique MVC (Modèle-Vue-Contrôleur) avec une structure plate et lisible. Il n'y a pas de framework — le routage, l'accès à la base de données, l'authentification et le rendu sont tous implémentés directement en PHP.
Navigateur / Fournisseur de Canal
│
▼
index.php ← Contrôleur frontal
│
▼
app/router.php ← URL → [Contrôleur, méthode]
│
▼
app/Controllers/ ← Logique métier
│
┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(templates HTML) (requêtes PDO MySQL)
Les Quatre Types de Requêtes
- Requêtes de Page — GET vers
/inbox,/contacts, etc. → charge HTML + JS - Requêtes API — GET/POST/PATCH/DELETE vers
/api/...→ retourne JSON - Requêtes Webhook — POST des fournisseurs vers
/webhooks/{type}/{id}→ traite les messages entrants - Flux SSE — connexion persistante vers
/sse→ pousse les événements en temps réel au navigateur
Flux de Données : Message Entrant
1. Le client envoie un message sur WhatsApp
2. Meta fait un POST vers /webhooks/whatsapp/{channel_id}
3. WebhookController vérifie la signature, normalise le payload
4. Trouve/crée le contact, trouve/crée la conversation
5. Sauvegarde le message, déclenche les événements SSE, met en file les événements d'automatisation
6. Retourne 200 à Meta
7. SSE pousse vers tous les navigateurs d'agents connectés en 2 secondes
Flux de Données : Message Sortant
1. L'agent tape une réponse et clique sur Envoyer
2. Le navigateur fait un POST vers /api/conversations/{id}/messages
3. Sauvegarde le message, appelle l'API du canal (WhatsApp, Twilio, etc.)
4. Pousse un événement SSE aux autres agents
5. Retourne 201