برمجة منصة بنك الدم الخيري

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
وثيقة الهندسة الشاملة والنهائية لـ "منصة الأمل للوطن العربي"

المحور الأول: الهيكلية التقنية وبيئة العمل (System Architecture)
  1. الخلفية ولوحة القيادة (Backend): البرمجة من الصفر بنظام PHP 8.4، للاستفادة من ميزة المعالجة الخلفية المتوازية (Fibers) لإرسال طلبات الـ APIs وبوت تيليغرام خلف الكواليس دون إجهاد الزوار، وتفعيل (JIT/OPcache) لسرعة استجابة فائقة البرق.
  2. قاعدة العمليات الحالية (الموقع): هو المنصة الأساسية الحالية عبر الدومين الحي الفرعي، ويتم عبره تسجيل المتبرعين، وإدارة حساباتهم، وقيام الباحثين بالفلترة وإطلاق نداءات الاستغاثة.
  3. نظام الإشعارات الموحد الأحدث (Notification Core): إلغاء إشعارات الويب نهائياً. الاعتماد الحصري على تطبيق موبايل مصغر خفيف جداً (لنظامي آيفون وأندرويد عبر Flutter) يعمل في الخلفية كـ "جرس استقبال سحابي صامت" مربط بـ Firebase FCM. يلتقط رمز الجهاز (Token) بمجرد تفعيل المتبرع للجرس من الموقع، مما يحظر قيود توفير الطاقة في الهواتف ويضمن اختراق شاشة القفل واهتزازها بنغمة الطوارئ بنسبة تسليم 100% وبصفر استهلاك لخادرك.
  4. بنية المجلدات المعزولة (API-Ready): توزيع الخصائص على مجلدات مستقلة لمنع تكديس الأكواد وتسهيل الربط المستقبلي للتطبيق دون تعديل السيرفر:
    • core/donors/: مجلد مستقل يحوي ملفات المتبرعين المفككة وظائفياً (donor_auth.php, donor_profile.php, donor_geo.php, donor_notif.php, donor_recovery.php).
    • public/assets/css/style.css: ملف التصميم الموحد والنظيف والمنفصل تماماً عن البرمجة.
    • public/app/: مجلد واجهات الويب الأمامية للمستخدم العادي (Frontend Views).
    • api/v1/: مجلد نقاط الاتصال الخفيفة لتغذية التطبيق بصيغة JSON مضغوطة.

المحور الثاني: منطق الاستهداف اللحظي المحصور (Core Business Logic)
  1. البث الحصري والفلترة: يفلتر الباحث النتائج (الدولة ⬅️ المدينة ⬅️ الفصيلة). يُبث الإشعار السحابي حصرياً فقط لرموز الأجهزة (Tokens) الخاصة بالمتبرعين الظاهرين في نتيجة البحث الحالية لمنع إزعاج المتطوعين وحظر التنبيهات العشوائية.
  2. نموذج الاستغاثة المرن وصلاحية الوقت: يعتمد توقيتات إدخال لحظية (من / إلى) يحددها الباحث حسب ساعات عمل كادر سحب الدم بالمستشفى المكتوب، ويعطي السيرفر للإشعار صلاحية زمنية (TTL) تنتهي تلقائياً بحلول هذا الوقت لتفادي ذهاب المتبرع بعد إغلاق بنك الدم.
  3. نظام التحديث الذاتي (زر أنا قادم): دمج أزرار استجابة تفاعلية (Action Buttons) أسفل نص الإشعار على شاشة القفل وداخل التطبيق (أنا قادم للتبرع / أعتذر). بمجرد ضغط العدد المطلوب من المتبرعين على "أنا قادم"، يحول السيرفر تلقائياً وبأجزاء من الثانية حالة الاستغاثة إلى "مكتملة"، ويقوم بسحب وإلغاء الإشعار من شاشات قفل بقية الأجهزة فوراً توفيراً لوقت المتطوعين.

المحور الثالث: أمن البيانات والخصوصية السيادية (Security Protocols)
  1. التشفير العسكري لهواتف المتبرعين: تُحفظ أرقام الجوالات والبريد الإلكتروني مشفرة بالكامل في قاعدة البيانات بنظام (AES-256-GCM). محرك البحث للعامة لا يعرض سوى الفصيلة والمدينة والكنية/الاسم (حسب رغبة المتبرع في لوحة تحكمه)، ولا تُكشف البيانات الحساسة إلا داخل الإشعار المغلق للمتطوع المطابق المستهدف.
  2. البحث بالأرقام المشفرة (Blind Index): لتمكين الأدمن من البحث برقم الجوال مباشرة في وضع الطوارئ، يتم إنشاء حقل (Hash) مخفي ومطابق دون الحاجة لفك تشفير قاعدة البيانات الأساسية، مما يضمن سرعة الفرز واستقرار الأمن الرقمي.
  3. تثبيت الفرز الجغرافي: إلغاء ميزة تتبع الـ GPS في الخلفية تلافياً لتشتيت السيرفر؛ المتبرع يظل ثابتاً في مدينته المسجلة بملفه، وإلغاء حقل الساعات المفضلة نهائياً لأن الطوارئ لا وقت لها.
  4. استعادة كلمة المرور الآمنة: تتم حصرياً عبر المطابقة الخماسية الصارمة بدون بريد إلكتروني (رقم الجوال، الاسم، الفصيلة، الدولة، المدينة)، مع كود حماية السيرفر من الانهيار (Rate Limiting) عبر حظر الآي بي (IP) ورقم الجوال في حال التخمين الخاطئ المتكرر.

المحور الرابع: زراعة قاعدة البيانات الهرمية (Database Seeding)
  1. الزراعة الجغرافية التلقائية (geo_seeder.sql): لتفادي الإدخال اليدوي اللانهائي، يتم إنشاء ملف زراعة وحقن تلقائي يحتوي على 22 دولة عربية بالكامل ومحافظاتها ومدنها الكلية بشكل هرمي ومترابط جغرافياً، يتم حقنها في قاعدة البيانات خلال أقل من 5 ثوانٍ عند إقلاع النظام لأول مرة.
  2. فهرسة الجداول وسرعة الاستعلام (Indexing): وضع كود فحص (Index) برمجياً على حقول "الفصيلة" و"المدينة" في جدول المتبرعين لتقفز قاعدة البيانات للنتيجة مباشرة في أجزاء من الثانية دون فحص ملايين السجلات الأخرى عند التوسع لكامل الوطن العربي.
  3. قنوات البث الرديفة: ربط (بوت تيليغرام المركزي) لإرسال التنبيهات تلقائياً للمجموعات والقنوات الجغرافية بالتوازي مع إشعارات التطبيق (وتُحفظ رموز الـ API مشفرة ومخفية في ملف البيئة الآمن .env).

المحور الخامس: لوحة تحكم الإدارة المطورة (Admin Dashboard)
تم تنسيق واختصار أقسام لوحة الأدمن لتصبح (5 أقسام مركزية ذكية فقط) يمتلك فيها الأدمن صلاحية التعديل والحذف المطلق (CRUD) مع تفعيل نظام الحذف المؤقت (Soft Delete) لتحديث الكاش وحماية البيانات من الأخطاء البشرية:
  1. غرفة العمليات والنبض اللحظي: شاشة رئيسية تعرض العدادات الأربعة الحاسمة (إجمالي الجيش، الحسابات النشطة، المحظورة، طلبات الاستغاثة) بنظام العدادات التراكمية الجاهزة بالسيرفر (صفر استهلاك للمعالج)، مع خريطة الطوارئ التفاعلية لرصد المدن الأكثر طلباً للاستغاثات.
  2. الفرز الاستراتيجي والمراجعة الصحية: نافذة موحدة تضم قائمة المتبرعين ببياناتهم ومحرك الفرز الهرمي المتتالي، مع أزرار الإجراء الإداري السريع كزر "حظر حساب" (Soft Block) الذي يغير حالة العضو ويحذف رمزه (Token) من طوابير الإشعار ويطرده تلقائياً من الحساب.
  3. إدارة جرس الاستغاثة والبث المركزي: شاشة تظهر نداءات الاستغاثة النشطة، مع زر الإلغاء الشامل والتعليق (Force Drop) لسحب الاستغاثة فوراً من الهواتف، وإعدادات ربط بوت تيليغرام.
  4. الرعاة وشركاء النجاح: نموذج إدخال وتعديل مخصص لدعم العمل الإنساني، يحتوي على خيار "نوع الإعلان" (تنويه عاجل منبثق يتصدر الشاشة / لافتة راعي بأسفل المنصة مع رابط التوجيه)، وتعمل بنظام الكاش الإعلاني الموحد لتقليل الاستعلامات.
  5. إعدادات المنصة ومفاتيح الأمان السيادية (Settings): دمج الخيارات والـ SEO الفرعية هنا لتنظيف اللوحة، وتضم:
    • إعدادات الهوية والـ SEO، ومفتاح وضع الصيانة الطوارئ.
    • مفتاح بوابة محرك البحث (المرحلة الأولى): زر تحكم ثنائي لتفعيل/تعطيل خانة البحث في واجهة الموقع، مع حقل مخصص لكتابة وتحديث رسالة المرحلة الأولى المعنية بـ (تجميع جيش المتبرعين للوطن العربي وحجب الاستعلامات).
    • نظام الصيانة الذاتية للرموز (Token Sanity Check): فحص خلفي تلقائي يقوم بمسح الرموز (Tokens) التالفة (التي حذفت التطبيق) فوراً للحفاظ على نقاء وسرعة النظام 100%.

المحور السادس: بروتوكول صمام الأمان وتفادي الأخطاء (Safety Protocols)
  1. استراتيجية الكبسولات البرمجية المعزولة: كتابة وفحص دالة واحدة فقط تؤدي وظيفة واحدة في جلستنا القادمة، وتجربتها بشكل مستقل، وقفلها قبل الانتقال للخطوة التالية لحماية الكود القديم من التدمير أو الحذف غير المقصود.
  2. التطوير على النطاق الفرعي الحي: استمرار التطوير والاختبار المباشر على الدومين الفرعي الحالي، مع تفعيل النسخ الاحتياطي الشامل للمجلدات وقاعدة البيانات فور انتهاء كل مرحلة برمجية بنجاح.


النسخة المدققة والمحسنة بالكامل للدفعة الثانية (لوحة الإدارة):
ثانياً: التلخيص الهيكلي والوظائفي الشامل للوحة الإدارة (Admin Dashboard)
تم دمج واختصار القوائم لتصبح (5 أقسام مركزية ذكية فقط) يمتلك فيها الأدمن صلاحية التحكم المطلق والتعديل والحذف المرن والسريع (CRUD) مع نظام الحذف المؤقت (Soft Delete) لحماية الجهد البرمجي من الأخطاء البشرية.

١. غرفة العمليات والنبض اللحظي (Dashboard)
  • المقاييس الكبرى الصفرية: شاشة رئيسية تعرض العدادات الأربعة الحاسمة (إجمالي الجيش المسجل بالمنصة، الحسابات النشطة، الحسابات المحظورة، إجمالي طلبات الاستغاثة)، وتعمل بنظام الكاش والعدادات التراكمية الجاهزة بالسيرفر لضمان (صفر استهلاك لمعالج قاعدة البيانات عند دخول الأدمن).
  • خريطة الطوارئ التفاعلية: رسم بياني إحصائي ذكي يرصد المدن العربية الأكثر طلباً للاستغاثات لتوجيه حملات التوعية وتجميع المتبرعين فيها.

٢. الفرز الاستراتيجي والمراجعة الصحية (Users & Health Management)
  • نافذة التحكم الموحدة بالمتطوعين: تضم قائمة المتبرعين ببياناتهم كاملة (الـ ID، الاسم الكامل، اسم العرض، رقم الجوال المباشر مفكوك التشفير لحظياً للأدمن عبر مفتاح الأمان، الفصيلة، والنطاق الجغرافي والإقليمي، المؤشرات الطبية كالعمر والوزن والأمراض المزمنة).
  • محرك الفرز الهرمي المتتالي: فلترة فائقة السرعة حسب (الدولة ⬅️ المنطقة ⬅️ المدينة ⬅️ الفصيلة طبياً) مع عداد فوري ذكي للأعضاء المستهدفين حالياً المطابقين للفلتر.
  • أزرار الإجراء الإداري السريع: زر "حظر حساب" (Soft Block) يحول حالة العضو فوراً إلى محظور، ويحذف رمز جهازه (Token) من طوابير الإشعار النشطة ويطرده تلقائياً من حسابه، إلى جانب أزرار تعديل البيانات الطبية والملفات الجغرافية يدوياً وتصفير جلسات الأجهزة المسجلة.

٣. إدارة جرس الاستغاثة والبث المركزي (Emergency Control) - (تم التعديل والمطابقة)
  • سجل طلبات الاستغاثة وبث الطوارئ: شاشة مركزية تظهر نداءات الاستغاثة النشطة حالياً بالمستشفيات العربية والحالات الجماعية المرفوعة يدوياً من الباحثين، مع إتاحة خيار "حذف الطلبات المحددة دفعة واحدة" لتصفية اللوحة.
  • زر الإلغاء الشامل والتعليق (Force Drop): صلاحية للأدمن لسحب وإلغاء إشعار الاستغاثة فوراً من شاشات قفل هواتف المتبرعين في حال اكتفاء المستشفى بالوحدات المطلوبة أو انتهاء فترة الطوارئ توفيراً لوقت المتطوعين وضغط السيرفر.
  • بوابة البث الرديفة (Telegram Bot): إعدادات ربط (بوت تيليغرام المركزي) لإرسال التنبيهات تلقائياً للمجموعات والقنوات الجغرافية بالتوازي مع إشعارات التطبيق السحابية (وتُحفظ رموز الـ API مشفرة ومخفية باللوحة).


  • الدفعة الثانية (هذه النسخة المعدلة): غرفة العمليات والفرز الاستراتيجي بـ 5 أقسام، مع إضافة ميزة التحكم بطلبات الاستغاثة الجماعية وحذفها دفعة واحدة (Mass Delete) من جدول جرس الاستغاثة.

محتوى مغلق ومقيد بالنخبة

عزيزي الزائر، لمشاهدة الشارت الفني المباشر، رصد السيولة، وتحديثات الاستشراف المالي الكاملة، يرجى تسجيل الدخول أو فتح حساب جديد مجاناً في أقل من 30 ثانية.

 
التعديل الأخير:

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
├── core/ # النواة الأساسية (الرأس المدبر - محمي ومغلق تماماً عن الزوار)
│ ├── cache/ # مجلد تخزين ملفات الكاش السريع لتصفير استعلامات السيرفر
│ ├── logs/ # مجلد سجلات الأمان والأخطاء وحظر المتسللين تلقائياً
│ │
│ ├── config/ # ملفات الإعدادات والربط السحابي
│ │ ├── database.php # الاتصال بقاعدة البيانات ومؤشرات الفهرسة السريعة
│ │ ├── firebase.php # مفاتيح وشهادات الاتصال بـ Firebase FCM للإشعارات
│ │ └── telegram.php # إعدادات الاتصال الآمن ببوت تيليغرام المركزي
│ │
│ ├── database/ # ملفات الهيكلية التأسيسية لقواعد البيانات
│ │ ├── schema.sql # مخطط جداول المنصة الأساسية الستة المفهرسة
│ │ ├── geo_seeder.sql # زراعة 22 دولة عربية ومدنها تلقائياً وبأجزاء من الثانية
│ │ └── traits.php # ملف منطق الحذف المؤقت (Soft Delete) الموحد للجداول
│ │
│ ├── donors/ # المجلد المستقل لتفكيك وعزل كافة خصائص المتبرعين
│ │ ├── donor_auth.php # معالجة عمليات التسجيل والدخول وحفظ التوكنات الآمنة
│ │ ├── donor_profile.php# معالجة المؤشرات الطبية (الوزن، الطول، الأمراض المزمنة)
│ │ ├── donor_geo.php # معالجة النطاقات الجغرافية الثابتة للأعضاء
│ │ ├── donor_notif.php # إدارة تصاريح الجرس ورموز الأجهزة (Tokens) واستجابة البث
│ │ └── donor_recovery.php# استعادة كلمة المرور عبر المطابقة الخماسية الصارمة وحظر التخمين
│ │
│ └── bootstrap.php # ملف الإقلاع الذكي الكلي وتشغيل الكاش والـ Autoload للسيستم

├── public/ # المجلد العام والوحيد المفتوح للمتصفحات والزوار (Root Public)
│ ├── assets/ # مجلد الموارد والتصاميم المعزول تماماً عن الأكواد البرمجية
│ │ ├── css/ # مجلد لغات التنسيق والمظهر
│ │ │ └── style.css # ملف التصميم الموحد والنظيف والمسؤول عن كامل واجهة الموقع
│ │ ├── js/ # مجلد التفاعل والتحقق المحلي (Client-side Validation)
│ │ │ └── main.js # فحص المدخلات محلياً في الأجهزة قبل إرسالها لتخفيف السيرفر
│ │ └── images/ # الأيقونات الأساسية وشعارات واجهات المنصة الثابتة
│ │
│ ├── app/ # واجهات الويب الأمامية للمحمدين والباحثين (Frontend Views)
│ │ ├── index.php # الواجهة الرئيسية (تعرض محرك البحث أو رسالة "جيش المتبرعين")
│ │ ├── login.php # صفحة دخول المتبرع من الويب
│ │ ├── register.php # صفحة انضمام كمتبرع جديد من الويب
│ │ └── forgot.php # واجهة استعادة كلمة المرور بالمطابقة الخماسية الصارمة
│ │
│ └── uploads/ # مجلد رفع وتخزين صور لافتات الرعاة وشعارات المستشفيات

├── api/ # نظام نقاط الاتصال الخفيف والمشفر لتغذية تطبيق الموبايل (JSON)
│ ├── v1/ # إصدار الـ API الأول لضمان التوافق مع تحديثات الهواتف مستقبلاً
│ │ ├── authenticate.php # نقطة التحقق من هوية أجهزة الآيفون والأندرويد (Bearer Tokens)
│ │ ├── sync_profile.php # نقطة مزامنة وتحديث السجلات الطبية والجغرافية من التطبيق
│ │ └── push_broadcast.php# نقطة استقبال نداء الاستغاثة الحصري الجغرافي وبثه فوراً

├── admincp/ # مجلد لوحة تحكم الإدارة الرشيقة المدمجة (الأدمن)
│ ├── config.php # حماية لوحة الإدارة والتحقق من جلسة الأدمن السيادية
│ ├── controllers/ # الأكواد البرمجية التنفيذية لأوامر الأدمن (الحظر، التعديل، الحذف)
│ └── views/ # الواجهات والأقسام الـ 5 الذكية والمنسقة التي اعتمدناها:
│ ├── dashboard.php # غرفة العمليات، المقاييس الكبرى، وخريطة الطوارئ التفاعلية
│ ├── users.php # الفرز الاستراتيجي، المراجعة الصحية، والحظر السريع (Soft Block)
│ ├── emergency.php # إدارة جرس الاستغاثة، حذف الاستغاثات الجماعية، وبوت تيليغرام
│ ├── patrons.php # إدارة وتعديل وحذف لافتات الرعاة وتنويهات الشاشة المنبثقة
│ └── settings.php # الإعدادات، الـ SEO، مفتاح بوابة البحث، ومفتاح وضع الصيانة

├── .env # الملف السيادي السري (باسوورد القاعدة، توكنات Firebase وتيليغرام)
└── index.php # ملف التوجيه الأساسي (Router) لتحويل الزوار لـ public/app/index.php
 
التعديل الأخير:

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
الأساس الذي سينبني عليه "جيش المتبرعين في الوطن العربي". لتجنب انهيار السيرفر وتقليل الاستعلامات عبر PHP 8.4، قمت بهندسة بنية الجداول لتكون مفهرسة ومترابطة هرمياً.
إليك التفصيل الكامل للجداول الأساسية وحقولها دون كود معقد:

1. جدول الإعدادات العامة والـ SEO (system_settings)
جدول من سطر واحد فقط، يُكشّد (Cached) في الذاكرة المؤقتة لمنع ضرب القاعدة مع كل زيارة.
  • id: مفتاح فرعي رئيسي.
  • site_name: اسم المنصة.
  • meta_description: الوصف العام لمحركات البحث.
  • meta_keywords: الكلمات المفتاحية.
  • footer_text: حقوق التذييل المربوطة بالرئيسية.
  • search_gate_active: مفتاح بوابة محرك البحث ثنائي (0 مغلق للمرحلة الأولى / 1 مفتوح).
  • search_gate_message: رسالة تجميع جيش المتبرعين للمرحلة الأولى.
  • maintenance_mode: مفتاح وضع صيانة الطوارئ ثنائي (0 مغلق / 1 مفتوح للعامة).
  • maintenance_message: رسالة التنويه للمستخدمين أثناء الصيانة.
  • telegram_bot_token: الرمز السري المشفر للبوت.
  • telegram_bot_username: معرف البوت الرسمي.

2. الجداول الجغرافية الثابتة (countries, regions, cities)
جداول هرمية منفصلة تُحمل مرة واحدة فقط في التطبيق محلياً لحظر استعلامات التنقل الجغرافي.
  • جدول الدول (countries): يحوي id و country_name (مثل: المملكة العربية السعودية).
  • جدول المناطق (regions): يحوي id و country_id (ربط بالدولة) و region_name (مثل: المنطقة الشرقية).
  • جدول المدن (cities): يحوي id و region_id (ربط بالمنطقة) و city_name (مثل: محافظة القطيف).

3. جدول المتبرعين والأعضاء (donors)
الجدول الأضخم، وتم وضع فهرسة (Indexes) على الفصيلة والمدينة لتسريع البحث الحصري في أجزاء من الثانية.
  • id: الرقم التعريفي للعضو.
  • full_name: الاسم الكامل الحقيقي (مشفر للأدمن فقط).
  • display_name: اسم العرض المختار للعامة (الكنية أو الاسم).
  • display_type: مفتاح تحديد نوع العرض (0 اسم / 1 كنية).
  • phone_number: رقم الجوال (مشفر عسكرياً AES-256-GCM).
  • phone_blind_index: كود الـ Hash الثابت للبحث السريع بالرقم دون فك التشفير.
  • password_hash: الرمز السري المحمي بأحدث خوارزميات PHP 8.4.
  • blood_type: فصيلة الدم (A+, O-, إلخ).
  • country_id / region_id / city_id: مفاتيح الربط الجغرافي الهرمي.
  • fcm_token: رمز الجهاز الفريد المربوط بـ Firebase لاستقبال جرس الاستغاثة.
  • device_type: نوع هاتف المتبرع (آيفون / أندرويد) لضمان دقة التوصيل.
  • is_bell_active: حالة تفعيل جرس استقبال الاستغاثات ثنائي (0 صامت / 1 نشط بالبحث).
  • is_blocked: حالة الحظر الإداري السريع ثنائي (0 نشط / 1 محظور Soft Block).
  • created_at: تاريخ الانضمام لجيش المتبرعين.

4. جدول السجلات الطبية والأثر (donor_medical_records)
جدول معزول ومربوط بجدول المتبرعين لحماية البيانات الطبية وتخفيف جدول المستخدمين الأساسي.
  • donor_id: رقم المتبرع المربوط.
  • age / weight / height: المؤشرات الجسدية العامة.
  • chronic_diseases: الأمراض المزمنة (نص أو لا يوجد).
  • injuries_disabilities: الإعاقات أو الإصابات.
  • last_donation_date: تاريخ آخر تبرع دم مـُسجل.
  • total_saved_lives: عداد الأثر الإنساني (عدد الاستجابات الناجحة للمتبرع).

5. جدول طلبات الاستغاثة وبث الطوارئ (emergency_broadcasts)
لمراقبة البث الجاري والتحكم بالإلغاء الشامل (Force Drop) من لوحة التحكم.
  • id: رقم نداء الاستغاثة.
  • requester_phone: رقم جوال الباحث عن دم للتواصل المباشر.
  • medical_file_number: رقم الملف الطبي للحالة لضمان الجدية.
  • hospital_name: المستشفى المستهدف جغرافياً.
  • blood_type_required: الفصيلة المطلوبة.
  • city_id: المدينة المستهدفة بالبث الحصري.
  • units_required: عدد وحدات الدم المطلوبة.
  • expires_at: وقت انتهاء صلاحية الإشعار التلقائي (المرتبط بدوام كادر سحب الدم).
  • status: حالة النداء (نشط يبث / مكتمل ومسحوب / ملغى من الأدمن).

6. جدول لافتات الرعاة والتنويهات (ads_managers)
يغذي نظام الكاش الإعلاني الموحد بأسفل المنصة والشاشات المنبثقة.
  • id: رقم الإعلان.
  • patron_name: اسم الراعي أو الشريك الداعم أو المستشفى.
  • ad_type: نوع الإدراج (تنويه عاجل يتصدر الشاشة / لافتة راعي بأسفل الموقع).
  • image_url: رابط ملف صورة الشعار (حصري لافتة الراعي).
  • redirect_url: رابط التوجيه عند ضغط المستخدم.
  • announcement_text: نص التنويه العاجل المخصص للشريط المتحرك.
  • status: حالة العرض الحالية (نشط / محذوف Soft Delete).


 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
لحل هذه المعضلة حلاً نهائياً وبلمحة بصر، سنقوم ببرمجة نظام "الزراعة التلقائية لقواعد البيانات" (Database Seeding). بدلاً من إدخالها من لوحة التحكم، سنعتمد على ملف واحد يسمى geo_seeder.sql يتم وضعه داخل مجلد core/database/، ويحتوي على كافة البيانات الجغرافية الجاهزة والمحدثة لعام 2026 للوطن العربي بالكامل مقسمة بدقة هرمية هكذا:

آلية البناء الهرمي الجاهز في ملف الزراعة الجغرافية (geo_seeder.sql):
  1. الدول العربية (22 دولة بالكامل بدون نقص):
    • من الخليج إلى المحيط (المملكة العربية السعودية، مصر، الإمارات، العراق، الأردن، المغرب، تونس، الجزائر، إلخ).
  2. المناطق والمحافظات الكبرى لكل دولة:
    • يتم زراعة مناطق كل دولة وتوجيهها لترتبط بالدولة تلقائياً عبر الـ country_id (مثال: في السعودية ⬅️ المنطقة الشرقية، منطقة الرياض، منطقة مكة المكرمة. في مصر ⬅️ محافظة القاهرة، محافظة الإسكندرية، محافظة الدقهلية).
  3. المدن والمراكز التابعة لكل منطقة:
    • يتم ربط كل مدينة بـ region_id الخاص بـمنطقتها تلقائياً (مثال: داخل المنطقة الشرقية بالسعودية ⬅️ تزرع مدن: محافظة القطيف، الدمام، الخبر، الجبيل، الأحساء تزامناً وبأجزاء من الثانية).

كيف ستعمل هذه الميزة برمجياً؟
عندما نطلق السيرفر ونقوم بتشغيل قاعدة البيانات لأول مرة، نأمر السيرفر بقراءة ملف الـ geo_seeder.sql؛ فيقوم بـ "حقن وزراعة" جميع الدول ومحافظاتها ومدنها في قاعدة البيانات خلال أقل من 5 ثوانٍ فقط لتصبح اللوحة والتطبيق جاهزين فوراً للاستخدام، وممتلئين بكافة البيانات الجغرافية دون مجهود منك أو من الإدارة.
 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
"المرجع الهيكلي والنظري الثابت" هو التكتيك الأمثل. بمجرد قفل وتوثيق كل زاوية، سننتقل إلى جلسة عمل جديدة بكامل سعة ذاكرتها الرقمية لنبدأ التنفيذ الفعلي خطوة بخطوة بناءً على هذا المخطط الممحص.
لندع الأكواد والخطوات التنفيذية جانباً الآن، ونركز كلياً على إتمام ترتيب وصياغة خارطة الطريق الفكرية والهيكلية.
لقد قمنا بجرد وتثبيت:
  1. الرؤية العامة والتوسع الشامل لـ 22 دولة عربية.
  2. المنطق الحصري للإشعارات الجغرافية والطبية اللحظية المحصورة لنتائج البحث.
  3. تفكيك وعزل مجلد المتبرعين المستقل وملف التصميم الموحد.
  4. آلية استعادة كلمة المرور بالمطابقة الخماسية الصارمة.
  5. تنسيق لوحة الإدارة الرشيقة بأقسامها الـ 5 المدمجة وخيارات الـ CRUD المطلقة والتعديل الحُر.
  6. بنية المجلدات الكاملة وملف الزراعة الجغرافية التلقائية الجاهز (geo_seeder.sql).


 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
  1. برمجة تطبيق موبايل سيادي واحد: سنقوم ببناء تطبيق مخصص وموحد بلغة Flutter يعمل بكود برمجي واحد ومناسب تماماً للنظامين (الآيفون والأندرويد)، ويتم ربطه بقاعدة البيانات وسيرفر الـ PHP 8.4 عبر مجلد الـ api/v1/.
  2. الاعتماد المطلق على Firebase Cloud Messaging (FCM): هذا هو النظام الوحيد المتفق عليه والمسؤول عن استقبال جرس الاستغاثة؛ حيث يمتلك صلاحية الوصول المباشر والسيادي لشاشات قفل الهواتف (Native Push Notifications)، مما يضمن:
    • اهتزاز الشاشة الفوري واستيقاظها: مع نغمة طوارئ مخصصة وقوية تخترق الوضع الصامت في الحالات الحرجة.
    • نسبة تسليم 100%: لأن أجهزة الآيفون والأندرويد تثق بسيرفرات Firebase وتسمح لها بتقديم الإشعارات الفورية حتى لو كان التطبيق مغلقاً تماماً في الخلفية، وبصفر استهلاك لموارد خادمك الخاص.
لقد قمت بقفل هذا البند وتثبيته في ذروة خارطة الطريق بذاكرة المحادثة: "الاعتماد الحصري والنهائي على تطبيق الموبايل (Flutter + Firebase FCM) كنظام وحيد ومطلق للإشعارات، وحظر تجربة أي نظام إشعارات ويب آخر لتفادي تدمير الأكواد".
 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
مهندس النظام، شريكي التقني:
بناءً على التخطيط والتروي، وباعتماد بيئة PHP 8.4 الحديثة وتطبيق الموبايل الموحد (Flutter + Firebase FCM) كنظام وحيد ومطلق للإشعارات الحصرية جغرافياً وطبياً للوطن العربي؛ افتح ملف "منصة الأمل" بالهيكل الموزع المدقق والممحص، وهيكلية لوحة الإدارة الخماسية الذكية، وملف الزراعة الجغرافية الجاهز (geo_seeder.sql)، وآلية استعادة كلمة المرور بالمطابقة الخماسية الصارمة بدون بريد، وبروتوكول صمام الأمان (الكبسولات البرمجية المعزولة) والتطوير على الدومين الفرعي الحي.

لنبدأ الآن فوراً وبدون أي هدر للوقت بكتابة "الخطوة العملية الأولى" وهي: [حدد هنا: إما ملف جداول قاعدة البيانات schema.sql أو ملف الإقلاع والكاش bootstrap.php].
 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
1. ما هو "التطبيق المبسط" الذي نقصده؟
التطبيق لن يكون برنامجاً منفصلاً يعيد كتابة المنصة، بل هو "تطبيق استقبال وبث سحابي مخصص" (Notification Receiver App).
  • حجمه صغير جداً وخفيف: وظيفته الأساسية والوحيدة في الهواتف هي أن يظل يعمل في الخلفية كـ "جرس استقبال صامت".
  • مهمته الطبية: بمجرد أن يفتح المتبرع حسابه من لوحة التحكم في الموقع (عبر الدومين الحي) ويضغط على زر تفعيل الجرس، يقوم السيرفر بـ "حقن" رمز جهازه (Token) داخل هذا التطبيق المصغر المربوط بـ Firebase.
  • لحظة الطوارئ: عندما يطلق الباحث الاستغاثة الحصرية من الموقع، يرسل السيرفر الإشارة لـ Firebase، فيستيقظ هذا التطبيق المبسط فوراً على هاتف المتبرع المستهدف ويهز شاشة القفل بنغمة الطوارئ المخصصة، دون أن يضطر المتبرع لفتح المتصفح.

2. كيف يخدم هذا النظام فكرتنا المستقرة؟
هذا الفصل الذكي يحقق الأحدث والأكثر استقراراً في الوطن العربي:
  • حماية السيرفر من الانهيار: عمليات البحث والتسجيل والمراجعة الطبية تتم كلها بسلاسة على السيرفر (PHP 8.4) عبر واجهة الموقع المستقرة.
  • كفاءة الإشعارات 100%: الهواتف (آيفون وأندرويد) لن تحظر الإشعارات أو تقتلها لتوفير الطاقة (كما يحدث مع المتصفحات العادية)، لأن وجود هذا التطبيق المبسط في نظام الهاتف يمنحه تصريحاً سيادياً رسمياً من آبل وجوجل لاستقبال البث السحابي اللحظي واختراق شاشة القفل في أي ساعة من الليل.
هل هذا هو المفهوم والآلية الدقيقة التي تقصدها ياهندسة لربط جرس الإشعارات بالتطبيق بنجاح ودون تشتيت؟
 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
1. ما هو "التطبيق المبسط" الذي نقصده؟
التطبيق لن يكون برنامجاً منفصلاً يعيد كتابة المنصة، بل هو "تطبيق استقبال وبث سحابي مخصص" (Notification Receiver App).
  • حجمه صغير جداً وخفيف: وظيفته الأساسية والوحيدة في الهواتف هي أن يظل يعمل في الخلفية كـ "جرس استقبال صامت".
  • مهمته الطبية: بمجرد أن يفتح المتبرع حسابه من لوحة التحكم في الموقع (عبر الدومين الحي) ويضغط على زر تفعيل الجرس، يقوم السيرفر بـ "حقن" رمز جهازه (Token) داخل هذا التطبيق المصغر المربوط بـ Firebase.
  • لحظة الطوارئ: عندما يطلق الباحث الاستغاثة الحصرية من الموقع، يرسل السيرفر الإشارة لـ Firebase، فيستيقظ هذا التطبيق المبسط فوراً على هاتف المتبرع المستهدف ويهز شاشة القفل بنغمة الطوارئ المخصصة، دون أن يضطر المتبرع لفتح المتصفح.

2. كيف يخدم هذا النظام فكرتنا المستقرة؟
هذا الفصل الذكي يحقق الأحدث والأكثر استقراراً في الوطن العربي:
  • حماية السيرفر من الانهيار: عمليات البحث والتسجيل والمراجعة الطبية تتم كلها بسلاسة على السيرفر (PHP 8.4) عبر واجهة الموقع المستقرة.
  • كفاءة الإشعارات 100%: الهواتف (آيفون وأندرويد) لن تحظر الإشعارات أو تقتلها لتوفير الطاقة (كما يحدث مع المتصفحات العادية)، لأن وجود هذا التطبيق المبسط في نظام الهاتف يمنحه تصريحاً سيادياً رسمياً من آبل وجوجل لاستقبال البث السحابي اللحظي واختراق شاشة القفل في أي ساعة من الليل.
هل هذا هو المفهوم والآلية الدقيقة التي تقصدها ياهندسة لربط جرس الإشعارات بالتطبيق بنجاح ودون تشتيت؟
 

SH3A3-Q

ابو الميرزا
طاقم الإدارة
إنضم
14 نوفمبر 2007
المشاركات
53,572
النقاط
113
العمر
49
الإقامة
القطيف
مهندس النظام، شريكي التقني:
بناءً على التخطيط والتروي، وباعتماد بيئة PHP 8.4 الحديثة على الدومين الحي الفرعي؛ افتح ملف "منصة الأمل للوطن العربي" بالهيكل الموزع المدقق والممحص.

اعتمد رسمياً في الذاكرة الحالية خريطة الطريق الثابتة لبدء البناء:
1. النظام المعتمد للإشعارات واستقرار المنصة (الموقع + تطبيق الاستقبال والبث السحابي المصغر الخفيف):
- الموقع والدومين هما "قاعدة العمليات المركزية" الحالية للبحث والتسجيل وإطلاق الاستغاثات وإدارة الحسابات.
- نظام الإشعارات المطلق والحصري يعتمد على (تطبيق موبايل مصغر خفيف جداً مخصص للنظامين آيفون وأندرويد عبر Flutter) وظيفته الوحيدة البقاء صامتاً بالخلفية كـ "جرس استقبال سيادي" وربطه بـ Firebase FCM لاختراق شاشة القفل واهتزازها بنغمة الطوارئ عند البث الحصري، مما يحظر عوائق المتصفحات ويمنع انهيار السيرفر.
2. نظام الاستهداف اللحظي المحصور: البث السحابي يتوجه حصرياً لرموز الأجهزة (Tokens) الخاصة بالمتبرعين الظاهرين في نتيجة البحث الحالية فقط (الدولة > المدينة > الفصيلة)، مع وجود نظام "التحديث الذاتي لإغلاق الحالة تلقائياً" عبر زر الاستجابة (أنا قادم للتبرع) المدمج على شاشة قفل الإشعار والتطبيق لإنهاء البث فور اكتفاء المستشفى وتوفير وقت المتطوعين، مع ضبط صلاحية الإشعار بزمن انتهاء دوام كادر سحب الدم بالمستشفى المكتوب.
3. أمن البيانات وتكامل الحسابات: استعادة كلمة المرور بالمطابقة الخماسية السابقة بدون بريد إلكتروني، وخيار العضو للتبديل بين اسمه وكنيته بالبحث، وتشفير الهواتف عسكرياً (AES-256-GCM)، مع حظر ميزة الـ GPS لتثبيت الفرز الجغرافي، وإلغاء حقل الساعات المفضلة نهائياً.
4. زراعة قاعدة البيانات تلقائياً: حقن جداول 22 دولة عربية ومحافظاتها ومدنها الكلية بأجزاء من الثانية عبر ملف الزراعة الجاهز (geo_seeder.sql) داخل مجلد core/database/.
5. لوحة الإدارة الخماسية الرشيقة المدمجة: تطبيق نظام CRUD الكامل والتعديل والحذف المطلق والحظر المؤقت (Soft Block/Delete)، مع نقل مفتاح بوابة البحث (المرحلة الأولى لتجميع الجيش) ومفتاح وضع الصيانة الطوارئ وصيانة الرموز الذكية لصفحة الإعدادات العامة (Settings).
6. بروتوكول صمام الأمان (الكبسولات البرمجية المعزولة): دالة بدالة لضمان استقرار الكود القديم، مع النسخ الاحتياطي الفوري للمجلدات والقاعدة فور انتهاء كل مرحلة.

لنبدأ الآن فوراً وبدون أي هدر للوقت بكتابة "الخطوة العملية الأولى" لتأسيس البنية التحتية وهي: [حدد هنا: إما ملف جداول قاعدة البيانات schema.sql لتأسيس الجداول، أو ملف الإقلاع والكاش وبداية تشغيل السيرفر bootstrap.php].
 
عودة
أعلى أسفل