كل المشاريع/AMALAXIS PORTAL

نظرة عامة

AmalAxis Portal هو نظام التشغيل المؤسسي الذي بنته AmalAxis لإدارة أعمالها من طرف إلى طرف. نظام خلفي واحد مبني على Django يخدم جمهورَين في الوقت نفسه: قوة عمل داخلية — الموظفون وقادة الفرق والموارد البشرية والمدير العام/الرئيس التنفيذي — وعملاء خارجيون يسجّلون الدخول عبر بوّابة عملاء مخصّصة. وهو يحلّ محلّ التشتّت المعتاد بين جداول البيانات وتطبيقات المحادثة وأدوات التتبّع وأدوات المستندات المتفرّقة، بسطح واحد موثَّق الدخول ومحكوم بالصلاحيات.

جولة توضيحية

جولة قصيرة في AmalAxis Portal.

التحدي

تميل شركات الخدمات النامية إلى العمل على خليط مرقّع من الأدوات: أداة للمهام، وأخرى للمحادثة، وجدول بيانات للإجازات، وبريد وارد لتقارير العملاء، ومساحة تخزين مشتركة للفواتير. والفواصل بين هذه الأدوات هي المكان الذي يتسرّب منه العمل — يضيع السياق بين التطبيقات، وتتفاوت الصلاحيات، ولا يملك أحد مصدرًا واحدًا للحقيقة. وكان المطلوب هنا طيّ هذا الخليط في نظام واحد قادر على أن يضمّ إدارة المهام، وسجلات الموارد البشرية، والحضور والإجازات، ونظام إدارة علاقات العملاء (CRM) مع الحجز، ومكتبة أصول تصميمية، ومخطّطًا تسويقيًا، وخزنة للبنية التحتية، ودورة عمل كاملة للفوترة والتقارير الموجّهة للعملاء — مع إبقاء بيانات الموظفين وبيانات كل عميل معزولة تمامًا خلف نموذج أدوار متماسك. وكان عليه أن يعمل في الوقت الفعلي (محادثة وإشعارات وحالة تواجد)، وأن يصمد حين تتعثّر تبعية مثل Redis، وأن يعرض كل شيء عبر واجهة برمجية نظيفة مُصدَّرة بإصدارات لواجهة أمامية أحادية الصفحة منفصلة.

تصميم النظام

كيف يعمل

01/04
01

تنفيذ إجراءات مساعد الذكاء الاصطناعي

يحوّل المساعد داخل البوّابة الطلب المكتوب بلغة طبيعية إلى إجراءات قابلة للتدقيق داخل البوّابة بعد التحقّق من الصلاحيات، بدل نصّ حرّ.

  1. 1يطلب موظف من المساعد تنفيذ أمر ما، مثل إنشاء مهام وإسنادها أو الموافقة على إجازة
  2. 2يجمع مُنشئ السياق حالة المؤسسة ذات الصلة ويرسلها إلى OpenRouter مع مخطّط الإجراءات المتاحة
  3. 3يردّ النموذج بلغة طبيعية إضافة إلى كتل إجراءات منظّمة (create_task, create_project, approve_leave, create_announcement, ...)
  4. 4يعيد ActionExecutor التحقّق من صلاحيات RBAC الخاصة بالمستخدم، ويشترط رمز تأكيد للإجراءات المدمّرة التي تطال المؤسسة بأكملها
  5. 5تكتب الإجراءات المُنفَّذة صفوفًا حقيقية وتبثّ الإشعارات، ما يُبقي مخرَج المساعد قابلًا للتدقيق
02

التقاط العملاء المحتملين عبر روبوت محادثة الموقع

روبوت محادثة عام متعدّد اللغات يجيب عن أسئلة الزوّار ويرقّي بهدوء المحادثات المؤهَّلة إلى عملاء محتملين في CRM.

  1. 1يرسل زائر رسالة إلى نقطة المحادثة العامة غير المصادَق عليها، وهي محدودة المعدّل لكل عنوان IP
  2. 2يجيب الروبوت من قاعدة معرفة مُضمَّنة ويكتشف اللغة تلقائيًا (الإنجليزية أو الأردية أو الأردية بالحروف اللاتينية)
  3. 3وعبر تبادل الرسائل يطلب الاسم ثم البريد الإلكتروني أو الهاتف، مستخرِجًا هذه الحقول من كل ردّ
  4. 4وبمجرّد التقاط الاسم مع بريد إلكتروني أو هاتف، يعكس النظام الخلفي الزائر في سجلّ Lead داخل CRM بالقيمة source_type='website'
  5. 5يفرز الموظفون المحادثة والعميل المحتمل من صندوق وارد Website Chats داخل البوّابة
03

تسليم تقارير العملاء ومستندات الفوترة

ينتج الموظفون تقارير ومستندات فوترة يتسلّمها العملاء ويراجعونها ويوقّعونها داخل بوّابتهم المحصورة بنطاقهم.

  1. 1يُعدّ الموظفون مسوّدة تقرير أو فاتورة أو عرض سعر أو عرض مقدَّم داخل النظام الفرعي لبوّابة العملاء
  2. 2وعند النشر، يُحوَّل المستند إلى PDF ويُخزَّن على DigitalOcean Spaces (S3)
  3. 3يراه العميل في بوّابته المحصورة بنطاقه، ويُرسَل بريد إلكتروني عبر Resend، رهنًا بقائمة السماح الخاصة بتجميد البريد
  4. 4يراجع العملاء ويوقّعون، وتُسجَّل المدفوعات مقابل المستند؛ وتُنزَّل حِزم التوقيع الإلكتروني بوصفها الملف الأصلي إضافة إلى شهادة إتمام
  5. 5وتُتابَع التجديدات وانتهاء الشهادات، مع إرسال تنبيهات مجدولة وفق جدول زمني
04

التعاون في الوقت الفعلي

تتحدّث المحادثة والإشعارات وحالة التواجد فوريًا عبر اتصالات WebSocket مصادَق عليها بـ JWT ومدعومة بـ Redis.

  1. 1يكتب الحدث (رسالة محادثة أو تغيير في مهمة أو إشعار) أولًا صفًّا دائمًا في قاعدة البيانات
  2. 2يستدعي التطبيق المعني group_send على طبقة Channels المدعومة بـ Redis
  3. 3يدفع Daphne التحديث عبر اتصال WebSocket مصادَق عليه بـ JWT ومُتحقَّق من مصدره إلى كل تبويب متّصل لدى المستخدمين المستهدفين
  4. 4تتحدّث إشعارات الجرس داخل التطبيق وحالة التواجد فوريًا، بينما تُضبَط نسخة البريد الإلكتروني على حدة عبر قائمة سماح التجميد

أبرز الميزات

  • نظام خلفي من واحد وعشرين وحدة يغطّي المهام والمشاريع وسجلات الموارد البشرية والحضور والإجازات وتقييمات الأداء والإعلانات
  • بوّابة خارجية متكاملة للعملاء: الفواتير وعروض الأسعار والعروض المقدَّمة والتقارير وسجلات الدفع والمواعيد والمراسلة والتوقيع الإلكتروني للمستندات
  • نظام RBAC ديناميكي للأدوار والصلاحيات مع عزل صارم بين الموظفين والعملاء وموقف افتراضي بالمنع
  • مساعد ذكاء اصطناعي وكيل يُنفّذ إجراءات داخل البوّابة بعد التحقّق من الصلاحيات، إضافة إلى روبوت محادثة عام متعدّد اللغات لالتقاط العملاء المحتملين
  • محادثة وإشعارات وحالة تواجد في الوقت الفعلي عبر Django Channels وRedis
  • نظام CRM مع حجز عام، وغرف فيديو Daily.co، ودعوات iCal، واستقبال العملاء المحتملين عبر webhook، ومعالجة إلغاء الاشتراك
  • مركز DevOps يضمّ خزنة أسرار مشفّرة بـ Fernet، وتسجيلًا لعمليات الوصول، وإعادة مصادقة قبل كشف السرّ
  • مكتبة أصول تصميمية، ومخطّط تسويقي، واعتماد داخلي لمستندات الموظفين

Outcomes

  • دمج نحو ستّ فئات من الأدوات المستقلّة في نظام خلفي واحد موثَّق الدخول ومحكوم بالصلاحيات خلف واجهة برمجية واحدة مُصدَّرة بإصدارات
  • إرساء نظام RBAC ديناميكي قابل لإعادة الاستخدام وموقف افتراضي بالمنع يفصل بوضوح بين الموظفين الداخليين وحسابات العملاء الخارجيين
  • تسليم بنية تحتية مرنة تعمل في الوقت الفعلي — محادثة عبر WebSocket وإشعارات وحالة تواجد — مع ذاكرة مؤقتة تفشل بهدوء وتحقّق مُحصَّن من مصدر الاتصال
  • إطلاق نشر إنتاجي على Docker بخدمات مزوّدة بفحوص سلامة، وفحوص سلامة لاتصالات PostgreSQL، ومسار CI/CD يقوده GitLab عبر بيئتَي التطوير والإنتاج

أعمال أخرى

DataInsight Dashboard preview
لوحة استكشاف بيانات

DataInsight Dashboard

أيُّ جدول بياناتٍ يدخل، فيخرج شكلُه — والمخطّطات تختارها البيانات نفسها

عرض المشروع