الرسوم التوضيحية لتدفق المنظومة ومسارات العمليات
1. المخطط البياني لتسلسل إدخال البيانات والاعتماديات بين الشاشات:
يوضح الرسم التفاعلي التالي كيف تتدفق البيانات من القواميس التأسيسية للمزارع والعمليات الحقلية وصولاً لمحركات الذكاء الاصطناعي والمخرجات:
2. مسار معالجة التشخيص المناخي الحي (AI & Open-Meteo Pipeline):
يوضح المخطط التالي كيف يتم التقاط الصورة ودمجها مع بيانات الطقس اللحظية وإرجاع التشخيص والإنذار المبكر:
3. الهيكل المعماري والطبقات ومبادئ SOLID:
يوضح الهيكل كيفية عزل المتحكمات عن الخدمات وحقن التبعيات وحماية البيانات:
4. مخطط العزل التلقائي وحماية خصوصية بيانات المستخدمين (Automatic Multi-Tenant & Role Data Scoping):
يوضح المخطط التالي كيف تقوم المنظومة بتوجيه المستخدمين وعزل السجلات وقوائم التحكم والويدجات تلقائياً بمجرد تسجيل الدخول بناءً على الدور:
نظام العزل التلقائي وخصوصية البيانات بين الشركات والمستخدمين
تم تصميم المنظومة لتعمل وفق نمط البوابة الموحدة الذكية (Intelligent Scoped Portal)، حيث يدخل جميع أطراف المنظومة (المزارعون، المهندسون الاستشاريون، الشركات والتجار، ومديرو النظام) من نفس الرابط /admin، ولكن محرك Filament & Eloquent Scoping يقوم فوراً بعزل وتخصيص الشاشات والبيانات والويدجات التحليلية بما يضمن السرية التامة وحماية خصوصية بيانات كل مزرعة وشركة.
| الدور / المستخدم | لوحة المؤشرات (Dashboard Widgets) | الشاشات المتاحة ونطاق البيانات (Accessible Scopes) | الشاشات المحجوبة أمنياً (Restricted Scopes) |
|---|---|---|---|
|
المزارع (Farmer)
صاحب الحقل / المستثمر
|
|
مزارعي وحقولي (مزارعه فقط) العمليات الحقلية (لحقوله فقط) سجل تشخيصات الـ AI والروشتات حجز استشارة مهندس زراعي حاسبة الجرعات وبورصة الأسعار منتدى المجتمع وبنك المعرفة | مزارع وحقول المستخدمين الآخرين شاشات إدارة الصلاحيات والأدوار الإعدادات العامة وتكوينات السيرفر |
|
مهندس استشاري (Engineer)
الخبير الزراعي الميداني
|
|
جدول الاستشارات والزيارات الموكلة مراجعة وتأكيد تشخيصات الـ AI إصدار تقارير المعاينة وروشتات الـ PDF الرد على استفسارات المزارعين في المجتمع جدول خلط المبيدات وبنك المعرفة | إدارة مزارع الفلاحين الشخصية استشارات المهندسين الآخرين تعديل أسعار النظام والإعدادات العامة |
|
الشركات والتجار (Merchants)
موردو المستلزمات والمدخلات
|
|
بورصة أسعار المحاصيل والمستلزمات جدول توافق خلط المبيدات والأسمدة بنك المعرفة الزراعي ومقالات FAO المجتمع الزراعي والتفاعل التجاري | سجلات مزارع وحقول الفلاحين تقارير الاستشارات الفنية والزيارات لوحة الإدارة المركزية والصلاحيات |
|
مدير المنظومة (Super Admin)
الإدارة العليا والتحكم الكامل
|
|
الوصول المطلق لجميع الشاشات الـ 16 إدارة الأدوار والصلاحيات (Shield Roles) إدارة قواميس المحاصيل والمواد الفعالة إعدادات الموقع وربط APIs الذكاء الاصطناعي | لا يوجد قيود (Full System Authority) |
1. كيف يتم تطبيق العزل على مستوى الاستعلامات (Eloquent Query Scoping)؟
في كل Resource من شاشات Filament، يتم تجاوز دالة getEloquentQuery() لفرض شرط التصفية تلقائياً على قاعدة البيانات؛ فلا يتم جلب سوى بيانات المستخدم الحالي حتى لو حاول تعديل معرف السجل (ID) في رابط المتصفح:
public static function getEloquentQuery(): Builder
{
$query = parent::getEloquentQuery();
$user = auth()->user();
// إذا لم يكن المستخدم مديراً، يتم حصر البيانات في مزارعه فقط
if ($user && !$user->isAdmin()) {
$query->where('user_id', $user->id);
}
return $query;
}
2. كيف تتبدل بطاقات الإحصائيات (Dynamic Dashboard Widgets)؟
يقوم ويدجت StatsOverviewWidget بفحص هوية المستخدم المسجل وتبديل عناوين وأرقام البطاقات في أجزاء من الثانية:
- للفلاح: يحسب
Farm::where('user_id', $user->id)ويعرض بطاقة "مزارعي الخاصة" و "إجمالي مساحتي". - للمهندس: يحسب الحالات المحالة إليه ويعرض بطاقة "حالات الفحص المحالة" و "استشاراتي الموكلة".
- للأدمن: يحسب الإحصائيات الشاملة لكافة مستخدمي المنظومة على مستوى الجمهورية.
3. كيف يسجل المزارع، المهندس، أو الشركة حساباً جديداً على المنظومة؟
تم تفعيل صفحة تسجيل مخصصة عبر الرابط /admin/register (أو بالضغط على "إنشاء حساب جديد" في شاشة تسجيل الدخول)، وتمر عملية التسجيل بالخطوات التالية:
1. اختيار نوع الحساب
يحدد المستخدم صفته: (🌾 مزارع / 🧑🌾 مهندس زراعي / 🏢 شركة وتاجر).
2. البيانات والاتصال
إدخال الاسم الكامل، البريد الإلكتروني، ورقم الهاتف المحمول للطوارئ.
3. الإسناد الآلي للدور
يسند النظام دور Spatie Role المناسب تلقائياً وينشئ الـ Profile.
4. الدخول المباشر المخصص
يتم توجيهه للوحة التحكم فوراً ليجد شاشاته المخصصة معزولة وجاهزة.
خريطة تدفق العمل والترتيب المنطقي لإدخال الشاشات
تم بناء المنظومة وفق نمط معماري يعتمد فيه كل موديول تشغيلي على بيانات أساسية مسجلة قبله لضمان تكامل قواعد البيانات ودقة الحسابات. يوضح المخطط التالي التسلسل الإلزامي والموصى به لإدخال البيانات:
محرك تشخيص أمراض النبات المدعوم بالأرصاد الحية (Open-Meteo + Gemini Vision)
تم ترقية محرك التشخيص بالذكاء الاصطناعي ليتجاوز مجرد فحص الصورة البصرية؛ حيث يقوم النظام لحظياً باستدعاء محطة الأرصاد المجانية Open-Meteo API لنفس إحداثيات الحقل ودمج المعطيات المناخية مباشرة في برومبت التشخيص:
https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}¤t=temperature_2m,relative_humidity_2m,wind_speed_10m,precipitation&timezone=Africa/Cairo
- ترجيح المسببات الفطرية: عند رصد رطوبة عالية (> 80%) مع حرارة معتدلة (18-26°م)، يرجح الذكاء الاصطناعي إصابات الندوة المتأخرة، البياض الزغبي، وأعفان الثمار.
- ترجيح المسببات الحشرية والحرارية: عند انخفاض الرطوبة وارتفاع الحرارة (> 35°م)، يرجح الـ AI إصابات العنكبوت الأحمر والأكاروسات أو لفحة الشمس وتنفيل الأزهار.
- توصيات الرش الذكية: فحص سرعة الرياح قبل التوصية بالرش لمنع تطاير رذاذ المبيد وضياع تكلفة الفدان.
أداة فحص خلط المبيدات وبورصة أسعار المحاصيل اليومية
جدول فحص توافق خلط المبيدات (Tank Mix Checker)
أداة كيميائية تفحص أمان خلط مادتين فعالتين أو سمادين في خزان الرش لضمان عدم احتراق الأوراق أو الترسيب:
بورصة أسعار المحاصيل والسلع الزراعية
متابعة لحظية لأسعار السلع الاستراتيجية في السوق المصري والبورصة السلعية مع نسب التغير اليومية:
| المحصول / السلعة | السعر الحالي | الوحدة | التغير |
|---|---|---|---|
| القمح المحلي (23.5) | 2,000.00 ج.م | إردب (150 كجم) | ▲ 1.50% |
| القطن المصري (جيزة 94) | 12,500.00 ج.م | قنطار | ▲ 3.20% |
| أرز شعير عريض الحبة | 17,800.00 ج.م | طن | ▲ 0.45% |
| الذرة الصفراء المحلية | 13,500.00 ج.م | طن | ▼ -0.80% |
مراجعة معايير SOLID Principles، الحماية والأمان، وClean Code
1. مبادئ SOLID الخمسة
- S (Single Responsibility): فصل كامل بين المتحكمات (Controllers) وطبقة الخدمات (Services). على سبيل المثال،
DiagnosisControllerيتعامل فقط مع الطلبات/الاستجابات بينما منطق الرؤية والذكاء الاصطناعي معزول فيAiDiagnosisServiceوGeminiAiService. - O (Open/Closed): الاعتماد على واجهات برمجية مجردة (
AiServiceInterface,WeatherServiceInterface) مما يتيح استبدال أو توسيع مزودي الذكاء الاصطناعي ومحطات الطقس دون المساس بالكود الأساسي. - L (Liskov Substitution): تطابق كامل في العقود البرمجية واستجابات DTOs والـ Resources.
- I (Interface Segregation): واجهات متخصصة ودقيقة لكل غرض وظيفي.
- D (Dependency Inversion): ربط واجهات الخدمات عبر حاوية الخدمات
AppServiceProviderبحقن التبعيات التلقائي (Dependency Injection).
2. معايير الحماية والأمان (Security)
- Rate Limiting (Throttle Middleware): تحديد سقف للطلبات (20 طلب/دقيقة للـ AI لمنع استنزاف الخوادم، و60 طلب/دقيقة لباقي الـ APIs ضد هجمات DDoS).
- XSS & Data Sanitization: تعقيم كافة النصوص الحقلية والمنشورات عبر
strip_tags()وتنظيف المدخلات في طبقة الـ FormRequests. - File Upload Hardening: تشفير أسماء الصور بـ UUID hashes وفحص صارم للـ MIME Types (jpeg, png, webp) وحجم أقصاه 8MB.
- Secrets Protection: عدم استخدام
env()مباشرة داخل الكنترولرات، والاعتماد علىconfig('services.gemini.api_key')للتوافق مع Config Caching ومنع تسريب المفاتيح. - Mass Assignment & Policies: تحديد
$fillableبدقة على كافة النماذج مع سياسات التحكم بالوصول (RBAC).
3. معايير الكود النظيف (Clean Code)
- Dedicated FormRequests: استخراج كافة قواعد التحقق لملفات مستقلة (
DiagnosePlantRequest,ChatMessageRequest,CalculateDosageRequest...). - API Resources (JsonResource): توحيد بنية الاستجابات البرمجية (
AiDiagnosisResource,CropMarketPriceResource...) لإخفاء أعمدة قواعد البيانات الحساسة وتنسيق البيانات. - Type Hinting & Return Types: توثيق دقيق لأنواع المدخلات والمخرجات على جميع الدوال والفئات.
- DRY Principle: إعادة استخدام منطق حساب المسافات الجغرافية، التحويلات المساحية، ومعالجات مخرجات الأرصاد.
دليل شاشات المنظومة: الوظائف والمدخلات والابتكارات
مراقبة حية للمساحات المزروعة، المزارع النشطة، أعداد التشخيصات اليومية، وبؤر الأوبئة.
تجميع آلي من سجلات المزارع والحقول وبؤر الإنذار المبكر والعمليات الحقلية.
بطاقات رقمية تفاعلية (KPIs) يتم تحديثها فورياً مع رسم بياني لتوزيع المحاصيل.
توثيق مزارع الفلاح، مساحاتها بالفدان، نظام الري (تنقيط/غمر)، نوع التربة، وإحداثيات GPS.
إلزامي: وجود حساب مزارع مسجل. اختياري: ربط الحقول بمواسم المحاصيل.
الربط الجغرافي التلقائي بمحطة Open-Meteo لتوليد تنبيهات الطقس والإنذار المبكر للأوبئة.
قاموس مرجعي لأنواع المحاصيل، تصنيفاتها (خضر، فاكهة، محاصيل حقلية)، ودرجات الحرارة المثلى.
لا يعتمد على شاشات أخرى (قاموس تأسيسي يتم إدخاله في المرحلة 1).
تغذية حاسبة الجرعات ومحرك قواعد توصيات الطقس (مثل درجات الحرارة الحرجة للصقيع).
احتساب كميات المبيد وماء الرش وتوزيعها على مواتير الرش الظهرية (20 لتر) وبراميل الرش (200 لتر).
يعتمد على: اختيار المبيد/السماد، إدخال المساحة والوحدة (فدان، قيراط، سهم، هكتار).
تحويل تلقائي دقيق للمساحات الزراعية وعرض فترة الأمان (PHI) وإرشادات السلامة.
فحص صور الأوراق المصابة بالرؤية الحاسوبية (Gemini Vision) وتحديد المرض والعلاج وروشتة PDF.
صورة النبات + إحداثيات GPS (يتم جلب طقس Open-Meteo آلياً فوراً).
تحليل أثر الرطوبة والحرارة، تعليمات الرش وفق سرعة الرياح، والتصعيد للمهندس المعتمد.
تجميع الإصابات جغرافياً، حساب مؤشر الخطر، وتنبيه المزارع المجاورة في دائرة 10 كم برشة وقائية.
توليد آلي فور تسجيل أي تشخيص لمرض وبائي عبر معادلة المسافات الكروية (Haversine).
احتساب مؤشر الخطر (Risk Score 0-100) وتوليد إشعارات وقائية موجهة لحماية الحقول المجاورة.
طرح الحالات الحقلية من المزارعين وتبادل الخبرات وإجابات المهندسين مع نظام اعتماد أفضل حل.
يعتمد على: تصنيفات الأقسام (أمراض خضر، موالح، تسميد...) والمحاصيل المسجلة.
تمييز أفضل إجابة (Best Answer)، إغلاق الحالة كمحلولة، وبناء سمعة المهندسين الخبراء.
تنظيم طلبات الزيارات الميدانية والاستشارات الرقمية، وتوثيق التقرير الفني للزيارة.
يعتمد على: قائمة خدمات المهندس وأسعاره، واختيار المزرعة وتاريخ الموعد.
إصدار تقرير فني ميداني معتمد بعد الزيارة يشمل خطة التسميد والمكافحة وتصديره PDF.
دليل نقاط الاتصال البرمجية (APIs) الجاهزة والمفحوصة
| الميثود والمسار | الوظيفة | المدخلات المطلوبة | المخرجات |
|---|---|---|---|
| POST /api/diagnose | تشخيص أمراض النبات بالـ AI والطقس | image, latitude, longitude |
مرض النبات، نسبة الثقة، العلاج، وبيانات Open-Meteo |
| POST /api/dosage/calculate | محرك حاسبة الجرعات والتسميد | agri_product_id, area_value, area_unit |
إجمالي المبيد وماء الرش ومواتير 20L والبراميل |
| POST /api/mix-checker/check | فحص توافق خلط المبيدات والأسمدة | substance_a, substance_b |
حالة الخلط (آمن/خطر)، التحذيرات، والأضرار المحتملة |
| GET /api/market/prices | بورصة أسعار المحاصيل اليومية | — | أسعار السلع (قمح، ذرة، قطن، أرز) ونسب التغير |
| GET /api/weather/farm/{id} | جلب طقس وتنبيهات المزرعة الحية | farm_id |
درجات الحرارة، سرعة الرياح، وتنبيهات الرش والصقيع |
| GET /api/early-warning/clusters | بؤر الأوبئة النشطة ومؤشر الخطر | — | البؤر النشطة، نصف القطر، ونقاط الخريطة الجغرافية |
| GET /api/knowledge/articles | بنك المعرفة الزراعي ومقالات FAO | category, search |
مقالات الإرشاد والتسميد والمكافحة المتكاملة |
| GET /reports/diagnosis/{id}/pdf | تحميل روشتة الفحص المعتمدة PDF | id |
ملف PDF مطبوع يشمل بيانات الفحص والطقس |