Aller au contenu principal

🏗️ 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

  1. Requêtes de Page — GET vers /inbox, /contacts, etc. → charge HTML + JS
  2. Requêtes API — GET/POST/PATCH/DELETE vers /api/... → retourne JSON
  3. Requêtes Webhook — POST des fournisseurs vers /webhooks/{type}/{id} → traite les messages entrants
  4. 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