إنتقل إلى المحتوى الرئيسي

🏗️ كيف يعمل PulseHub

PulseHub هو تطبيق ويب كلاسيكي يعتمد على نمط MVC (Model-View-Controller) بهيكل مسطح وسهل القراءة. لا يوجد إطار عمل — التوجيه والوصول إلى قاعدة البيانات والمصادقة والعرض كلها مُنفذة مباشرة في PHP.

المتصفح / مزود القناة


index.php ← المتحكم الأمامي


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


app/Controllers/ ← منطق الأعمال

┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(قوالب HTML) (استعلامات PDO MySQL)

أنواع الطلبات الأربعة

  1. طلبات الصفحات — GET إلى /inbox، /contacts، إلخ. → يحمّل HTML + JS
  2. طلبات API — GET/POST/PATCH/DELETE إلى /api/... → يُرجع JSON
  3. طلبات Webhook — POST من المزودين إلى /webhooks/{type}/{id} → يعالج الرسائل الواردة
  4. تدفق SSE — اتصال مستمر بـ /sse → يدفع الأحداث في الوقت الفعلي إلى المتصفح

تدفق البيانات: رسالة واردة

1. يرسل العميل رسالة على WhatsApp
2. Meta ترسل POST إلى /webhooks/whatsapp/{channel_id}
3. WebhookController يتحقق من التوقيع ويُطبّع الحمولة
4. يجد/ينشئ جهة اتصال، يجد/ينشئ محادثة
5. يحفظ الرسالة، يطلق أحداث SSE، يضع أحداث الأتمتة في قائمة الانتظار
6. يُرجع 200 إلى Meta
7. SSE يدفع إلى جميع متصفحات الوكلاء المتصلين خلال ثانيتين

تدفق البيانات: رسالة صادرة

1. يكتب الوكيل الرد وينقر على إرسال
2. المتصفح يرسل POST إلى /api/conversations/{id}/messages
3. يحفظ الرسالة، يستدعي API القناة (WhatsApp، Twilio، إلخ.)
4. يدفع حدث SSE إلى الوكلاء الآخرين
5. يُرجع 201