35 KiB
تقرير تحليل شامل لتطبيق إنتلق - لوحة الإدارة (Intaleq Admin)
📋 فهرس المحتويات
- نظرة عامة على النظام
- هيكل المشاريع والهندسة المعمارية
- تحليل الباك إند - الخادم الرئيسي (intaleq_v1)
- تحليل لوحة الإدارة (intaleq_admin)
- تحليل تطبيق خدمة العملاء (service_intaleq)
- قاعدة البيانات والموديلات
- نظام المصادقة والصلاحيات
- تحليل التوافقية بين الباك إند والأدمن
- الإضافات والتحسينات المقترحة
- ملخص وتوصيات
1. نظرة عامة على النظام
1.1 وصف النظام
نظام إنتلق (Intaleq) هو منصة متكاملة لخدمات نقل الركاب (ride-hailing) تعمل في عدة دول. يتكون النظام من المكونات الرئيسية التالية:
| المكون | التقنية | الوصف |
|---|---|---|
| تطبيق الركاب (Intaleq) | Flutter/Dart | تطبيق المستخدمين لطلب الرحلات |
| تطبيق السائقين (intaleq_driver) | Flutter/Dart | تطبيق السائقين (الكباتن) لاستقبال وتنفيذ الرحلات |
| لوحة الإدارة (intaleq_admin) | Flutter/Dart | لوحة تحكم للمشرفين لإدارة النظام |
| تطبيق خدمة العملاء (service_intaleq) | Flutter/Dart | تطبيق للموظفين للدعم وإدارة السائقين |
| الخادم الرئيسي (intaleq_v1) | PHP (بدون إطار عمل) | الباك إند الرئيسي REST API |
| خادم المحفظة (Wallet Server) | PHP (منفصل) | خدمة مالية مستقلة للمدفوعات |
| خادم المواقع (Location Server) | PHP (منفصل) | خدمة تتبع مواقع السائقين |
| سيرفر السوكت (socket_intaleq) | PHP WebSocket | خدمة الوقت الفعلي للتواصل المباشر |
| خدمة OTP (flash-call-otp) | Node.js | خدمة التحقق عبر المكالمات السريعة |
| خدمة الخرائط (map-saas) | خدمة منفصلة | خدمة التوجيه والبحث الجغرافي |
1.2 النطاق الجغرافي
النظام يعمل في عدة دول وأقاليم:
- مصر (القاهرة، الجيزة، الإسكندرية)
- سوريا
- الأردن (مسارات خاصة - routesjo)
2. هيكل المشاريع والهندسة المعمارية
2.1 الرسم البياني للهندسة المعمارية
┌──────────────────────────────────────────────────────────────┐
│ تطبيقات الواجهة الأمامية │
├─────────────┬──────────────┬──────────────┬──────────────────┤
│ Intaleq │ intaleq_ │ intaleq_ │ service_ │
│ (الركاب) │ driver │ admin │ intaleq │
│ Flutter │ Flutter │ Flutter │ Flutter │
└──────┬──────┴──────┬───────┴──────┬───────┴──────┬───────────┘
│ │ │ │
└─────────────┼──────────────┼──────────────┘
│ │
┌──────▼──────────────▼──────┐
│ API الرئيسية │
│ api.intaleq.xyz │
│ PHP REST (بدون إطار عمل) │
│ + JWT Authentication │
│ + Rate Limiting (Redis) │
└──────┬─────────────────────┘
│
┌────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────────┐
│ MySQL │ │ Redis │ │ خوادم فرعية │
│ intaleq │ │ (جلسات/تخزين │ │ - Wallet Server │
│ DB1 │ │ مؤقت/Cache) │ │ - Location Server│
└──────────┘ └──────────────┘ │ - Socket Server │
│ - Map SaaS │
└──────────────────┘
2.2 هيكل مجلدات المشاريع
intaleq_admin (لوحة الإدارة)
lib/
├── main.dart # نقطة الدخول
├── routes.dart # تعريف المسارات
├── binding/
│ └── initial_binding.dart # ربط المتحكمات الأولية
├── constant/ # الثوابت
│ ├── api_key.dart # مفاتيح API سرية
│ ├── box_name.dart # مفاتيح التخزين المحلي
│ ├── colors.dart # ألوان التطبيق
│ ├── credential.dart # بيانات الاعتماد
│ ├── links.dart # روابط API (363 سطر - جميع نقاط النهاية)
│ ├── style.dart # أنماط التصميم
│ └── table_names.dart # أسماء الجداول
├── controller/ # طبقة المتحكمات
│ ├── auth/ # المصادقة
│ │ ├── login_controller.dart
│ │ └── otp_helper.dart
│ ├── admin/ # متحكمات لوحة الإدارة
│ │ ├── analytics_v2_controller.dart
│ │ ├── captain_admin_controller.dart
│ │ ├── complaint_controller.dart
│ │ ├── dashboard_controller.dart
│ │ ├── dashboard_v2_controller.dart
│ │ ├── driver_docs_controller.dart
│ │ ├── financial_v2_controller.dart
│ │ ├── get_all_invoice_controller.dart
│ │ ├── kazan_controller.dart
│ │ ├── passenger_admin_controller.dart
│ │ ├── promo_controller.dart
│ │ ├── quality_controller.dart
│ │ ├── register_captain_controller.dart
│ │ ├── ride_admin_controller.dart
│ │ ├── security_v2_controller.dart
│ │ ├── staff_controller.dart
│ │ ├── static_controller.dart
│ │ └── wallet_admin_controller.dart
│ ├── firebase/ # إشعارات Firebase
│ ├── functions/ # دوال مساعدة (CRUD، تشفير، AI)
│ └── bank_account/ # حسابات بنكية
├── models/ # نماذج البيانات
│ ├── db_sql.dart
│ └── model/
│ └── admin/ # نماذج المشرفين
├── views/ # واجهات المستخدم
│ ├── admin/ # شاشات لوحة الإدارة
│ │ ├── admin_home_page.dart # الصفحة الرئيسية (1123 سطر)
│ │ ├── dashboard_v2_widget.dart
│ │ ├── captain/ # إدارة السائقين
│ │ ├── complaints/ # الشكاوى
│ │ ├── drivers/ # تتبع السائقين
│ │ ├── employee/ # الموظفون
│ │ ├── enceypt/ # أدوات التشفير
│ │ ├── financial/ # المالية
│ │ ├── passenger/ # الركاب
│ │ ├── pricing/ # التسعير
│ │ ├── promo/ # العروض الترويجية
│ │ ├── quality/ # الجودة
│ │ ├── rides/ # الرحلات
│ │ ├── security/ # الأمان
│ │ ├── server/ # مراقبة السيرفر
│ │ ├── staff/ # الكوادر
│ │ ├── static/ # الإحصائيات
│ │ └── wallet/ # المحفظة
│ ├── auth/ # شاشات المصادقة
│ └── widgets/ # مكونات قابلة لإعادة الاستخدام
└── services/ # (فارغ - لا توجد خدمات منفصلة)
3. تحليل الباك إند - الخادم الرئيسي
3.1 التقنيات المستخدمة
| التقنية | الوصف |
|---|---|
| PHP (بدون إطار عمل) | لغة السيرفر الأساسية - إصدار حديث مع declare(strict_types=1) |
| MySQL | قاعدة البيانات الرئيسية (intaleqDB1) |
| Redis | للتخزين المؤقت، إدارة الجلسات، Rate Limiting، والقوائم السوداء |
| JWT | للمصادقة والتوكنات |
| PDO | للاتصال الآمن بقاعدة البيانات |
| Composer | لإدارة المكتبات (Firebase JWT, Twilio, Stripe, PHPMailer) |
| HMAC | لتوقيع الطلبات المالية |
3.2 هيكل الباك إند
intaleq_v1/
├── connect.php # نقطة الدخول الموحدة (JWT مطلوب)
├── functions.php # دوال مساعدة (jsonSuccess, jsonError...)
├── login.php # تسجيل دخول API عام
├── loginAdmin.php # تسجيل دخول الأدمن (JWT)
├── core/
│ ├── bootstrap.php # البوابة الرئيسية: Redis, Encryption, Headers
│ ├── helpers.php # دوال البيئة والمساعدة
│ ├── Auth/
│ │ ├── JwtService.php # خدمة JWT كاملة
│ │ └── RateLimiter.php # تحديد معدل الطلبات
│ ├── Database/
│ │ └── Database.php # اتصال قاعدة البيانات (Singleton)
│ ├── Security/
│ │ └── EncryptionHelper.php # مساعد التشفير
│ └── Services/ # خدمات (فارغ حالياً)
├── Admin/ # نقاط نهاية لوحة الإدارة
│ ├── dashbord.php # لوحة المعلومات الرئيسية
│ ├── v2/ # خدمات الجيل الثاني
│ │ ├── realtime_dashboard.php
│ │ ├── smart_alerts.php
│ │ ├── analytics/ # التحليلات (نمو، إيرادات، ترتيب)
│ │ ├── financial/ # مالية (تسويات، إحصائيات)
│ │ ├── quality/ # جودة (قائمة سوداء، تقييم)
│ │ └── security/ # أمان (سجل التدقيق)
│ ├── adminUser/ # إدارة المشرفين
│ ├── driver/ # إدارة السائقين
│ ├── passenger/ # إدارة الركاب
│ ├── rides/ # إدارة الرحلات
│ ├── Staff/ # إدارة الكوادر
│ └── employee/ # الموظفون
├── auth/ # المصادقة
│ ├── captin/ # تسجيل/دخول السائقين
│ ├── sms/ # إرسال الرسائل النصية
│ ├── google_auth/ # مصادقة جوجل
│ ├── syria/ # مصادقة سوريا
│ └── passengerOTP/ # OTP الركاب
├── ride/ # عمليات الرحلات
│ ├── rides/ # إدارة الرحلات
│ ├── cancelRide/ # إلغاء الرحلات
│ ├── driver_order/ # طلبات السائقين
│ ├── kazan/ # التسعير
│ ├── promo/ # العروض الترويجية
│ ├── rate/ # التقييمات
│ ├── location/ # المواقع
│ ├── firebase/ # إشعارات Firebase
│ ├── driverWallet/ # محفظة السائقين
│ ├── passengerWallet/ # محفظة الركاب
│ ├── payment/ # المدفوعات
│ ├── notificationCaptain/ # إشعارات السائقين
│ ├── notificationPassenger/# إشعارات الركاب
│ ├── feedBack/ # التقييمات
│ ├── chat/ # المحادثة
│ ├── gamification/ # نظام التحفيز
│ └── invitor/ # نظام الدعوات
├── serviceapp/ # خدمة العملاء
│ ├── getComplaintAllData.php
│ ├── editCarPlate.php
│ ├── addNotesDriver.php
│ └── ... (20+ نقطة نهاية)
├── migration/ # الترحيل والتحديثات
├── EgyptDocuments/ # وثائق مصر
├── email/ # البريد الإلكتروني
├── webhook_sms/ # Webhook للرسائل
└── schema_*.sql # مخططات قواعد البيانات
3.3 نظام الأمان في الباك إند
- JWT Authentication: جميع الطلبات تتطلب توكن JWT صالح
- Rate Limiting: عبر Redis لمنع الهجمات
- تشفير البيانات:
EncryptionHelperمع مفتاح 32 بايت - HMAC للمعاملات المالية: توقيع إضافي للخادم المالي
- CORS Headers: مقيدة وآمنة
- Device Fingerprint: تتبع الأجهزة عبر
X-Device-FP
3.4 نقاط القوة في الباك إند
- ✅ بنية تحتية قوية مع Redis و JWT و Rate Limiting
- ✅ فصل الخدمات (Wallet, Location, Map SaaS مستقلة)
- ✅ نظام تحقق متعدد (OTP, Google, Flash Call)
- ✅ دعم متعدد الدول (مصر، سوريا، الأردن)
- ✅ نظام ترحيل (Migration) لتحديث قاعدة البيانات
3.5 نقاط الضعف في الباك إند
- ❌ عدم استخدام إطار عمل: PHP خام بدون Laravel/Symfony مما يصعب الصيانة
- ❌ SQL مباشر: استعلامات SQL مكتوبة يدوياً بدون ORM (عرضة للـ SQL Injection في بعض الأماكن)
- ❌ غياب التوثيق: لا يوجد API documentation (Swagger/OpenAPI)
- ❌ غياب الاختبارات: لا توجد Unit Tests أو Integration Tests
- ❌ ملف connect.php المركزي: نقطة فشل واحدة (Single Point of Failure)
- ❌ كود مكرر: دوال jsonSuccess/jsonError مكررة في أغلب الملفات
- ❌ غياب logging منظم: استخدام
error_logفقط بدون مستويات
4. تحليل لوحة الإدارة
4.1 المميزات الحالية
لوحة الإدارة توفر الوظائف التالية مقسمة حسب الفئات:
🧑🤝🧑 المستخدمين
- الركاب: عرض وإدارة وحذف وحظر
- السائقون: عرض وإدارة وتفعيل وحذف
- المراقب: تتبع السائقين مباشرة على الخريطة
⚙️ إدارة النظام
- أكواد الخصم: إنشاء وتعديل وحذف (Promo Management)
- تعديل الأسعار: تعديل نسب التسعير (Kazan Editor)
- الشكاوى: عرض وإدارة الشكاوى
- مراجعة الوثائق: فحص وثائق السائقين
📊 العمليات
- الرحلات: عرض وإدارة جميع الرحلات
- مراقبة الرحلات: متابعة الرحلات الجارية
- الإحصائيات: إحصائيات عامة
- التحليلات المتقدمة: تحليلات V2
🛡️ الجودة والدعم
- القائمة السوداء: حظر سائقين/ركاب
💰 المالية والإدارة
- الإدارة المالية V2: لوحة مالية متقدمة
- المحفظة: إدارة المحافظ
- هدية 300: هدايا تحفيزية للسائقين
- الفواتير: إدارة الفواتير
- الموظفون: إدارة الموظفين
- موافقة المشرفين: قبول/رفض مشرفين جدد
🔧 النظام والتواصل
- سجل العمليات: سجل تدقيق أمني
- واتساب جماعي: رسائل جماعية للسائقين
- إشعار سائقين/ركاب: إشعارات Firebase
- تسجيل سائق: تسجيل سائقين جدد
- تحديث التطبيق: متابعة إصدارات التطبيق
- مراقب السيرفر: مراقبة حالة السيرفر
- سجل الأخطاء: عرض أخطاء النظام
- أدوات التشفير: تشفير بصمات الأجهزة
- إدارة الكوادر: إضافة مديرين وخدمة عملاء (للسوبر أدمن فقط)
4.2 نظام الصلاحيات
// التحقق من الصلاحيات في admin_home_page.dart
isSuperAdmin = (role == 'super_admin') ||
(myPhone == '201023248456' || // أرقام محددة صلاحية مطلقة
myPhone == '963992952235' ||
myPhone == '963942542053');
مستويات الصلاحيات:
- super_admin: صلاحية كاملة - رؤية المحفظة، إضافة كوادر، مراقبة الرحلات
- admin: صلاحية محدودة - إدارة عامة بدون صلاحيات مالية حساسة
- service: خدمة عملاء (غير مفعلة في كل الواجهات)
4.3 نقاط القوة في لوحة الإدارة
- ✅ تصميم عصري وجميل: استخدام ألوان داكنة مع تأثيرات بصرية جذابة
- ✅ لوحة معلومات تفاعلية: Dashboard V2 مع تحديث تلقائي كل دقيقتين
- ✅ بحث سريع: شريط بحث لتصفية الخدمات
- ✅ تصنيف منظم: تجميع الوظائف في فئات منطقية
- ✅ دعم اللغة العربية: الواجهة بالكامل بالعربية
- ✅ تحديث تلقائي: RefreshIndicator للسحب للتحديث
4.4 نقاط الضعف في لوحة الإدارة
- ❌ ملف routes.dart غير مكتمل: 7 مسارات فقط معرفة من أصل 30+ شاشة (الباقي عبر
Get.to()) - ❌ كود كبير جداً:
admin_home_page.dartيحتوي 1123 سطر (يجب تقسيمه) - ❌ تكرار الكود: نمط CRUD متكرر في أغلب المتحكمات
- ❌ معالجة أخطاء غير متسقة: بعض المتحكمات تستخدم try-catch والبعض لا
- ❌ لا يوجد pagination: جميع البيانات تُجلب دفعة واحدة
- ❌ غياب التخزين المؤقت: لا يوجد caching للبيانات محلياً
- ❌ التحقق من الصلاحيات عبر أرقام هواتف ثابتة: ممارسة غير آمنة
- ❌ لا يوجد تسجيل خروج صريح: إزالة التوكن فقط دون إلغاء في السيرفر
- ❌ استخدام GetX لإدارة الحالة فقط: بدون استخدام ميزات التنقل القوية في GetX
- ❌ غياب WebSocket: لا يوجد اتصال مباشر للتحديثات الفورية (باستثناء V2 timer)
5. تحليل تطبيق خدمة العملاء
5.1 الوظائف الرئيسية
تطبيق service_intaleq هو أداة لموظفي خدمة العملاء للقيام بـ:
- تسجيل الدخول للموظفين
- استقبال إشعارات Firebase
- الوصول إلى وظائف serviceapp في الباك إند
5.2 نقاط القوة
- ✅ دعم اللغات (العربية والإنجليزية)
- ✅ تكامل مع Firebase للإشعارات
5.3 نقاط الضعف
- ❌ تطبيق بسيط جداً - يبدو غير مكتمل
- ❌ لا توجد شاشات واضحة للموظفين
- ❌ تكرار مع وظائف لوحة الإدارة
6. قاعدة البيانات والموديلات
6.1 الجداول الرئيسية (44+ جدول)
جداول المستخدمين
| الجدول | الوصف | عدد الأعمدة |
|---|---|---|
passengers |
الركاب | ~20 عمود |
driver |
السائقين | ~25 عمود |
adminUser |
المشرفين | 4 أعمدة |
employee |
الموظفين | 6 أعمدة |
جداول الرحلات
| الجدول | الوصف |
|---|---|
ride |
الرحلات الرئيسية |
canecl |
إلغاءات الرحلات |
driver_orders |
طلبات السائقين |
driver_behavior |
سلوك السائقين |
driver_ride_scam |
احتيال الرحلات |
جداول المركبات
| الجدول | الوصف |
|---|---|
CarRegistration |
تسجيل المركبات |
captains_car |
سيارات السائقين |
car_locations |
مواقع السيارات (Spatial Index) |
car_tracks |
تتبع مسار السيارات |
جداول مالية
| الجدول | الوصف |
|---|---|
driverWallet |
محفظة السائقين |
driver_gifts |
هدايا السائقين |
invoice_records |
سجلات الفواتير |
invoicesAdmin |
فواتير المشرفين |
kazan |
التسعير |
جداول النظام
| الجدول | الوصف |
|---|---|
complaint |
الشكاوى |
error |
سجل الأخطاء (115,338+ سجل) |
notifications |
إشعارات الركاب |
notificationCaptain |
إشعارات السائقين |
login_attempts |
محاولات الدخول |
api_keys |
مفاتيح API |
6.2 نقاط القوة
- ✅ تصميم جغرافي مكاني: استخدام
POINTوSPATIAL INDEXفي جدولcar_locations - ✅ تتبع كامل: جداول لتتبع السلوك، المواقع، والمسار
- ✅ أمان: جداول لتسجيل المحاولات والأخطاء
6.3 نقاط الضعف
- ❌ عدم استخدام FK (Foreign Keys): العلاقات غير مقيدة
- ❌ عدم تناسق التسمية: camelCase مع snake_case في نفس الجدول
- ❌ عدم وجود indexing كافٍ: بعض الأعمدة المستخدمة بكثرة بدون INDEX
- ❌ استخدام جداول قديمة: مثل
captains_carوCarRegistrationالمكررين - ❌ تخزين بيانات حساسة:
passwordغير مشفرة بشكل كافٍ - ❌ استخدام VARCHAR(6) لـ amount: يجب أن يكون DECIMAL للمبالغ المالية
7. نظام المصادقة والصلاحيات
7.1 تدفق المصادقة
1. المستخدم ← رقم الهاتف + كلمة المرور
2. الباك إند ← التحقق + JWT (مع role)
3. التطبيق ← تخزين JWT مشفر في GetStorage
4. كل طلب ← إرسال JWT في Header Authorization
5. الباك إند ← فك JWT + استخراج role + التحقق
7.2 نظام التوكن
// طريقة الحصول على JWT في CRUD
getJWT() async {
var payload = {
'id': 'admin',
'password': AK.passnpassenger,
'aud': '${AK.allowed}$dev',
};
// تشفير التوكن 3 مرات:
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
}
// فك التشفير عند الاستخدام:
token = r(rawJwt.toString()).split(AppInformation.addd)[0];
طبقات الأمان:
- JWT - توقيع رمزي
- تشفير 3 طبقات -
X.c()ثلاث مرات متتالية - HMAC - للمعاملات المالية
- Device Fingerprint -
X-Device-FPheader
7.3 نقاط القوة
- ✅ تشفير متعدد الطبقات للتوكنات
- ✅ نظام صلاحيات قائم على الأدوار (role-based)
- ✅ فصل مالي مع HMAC
7.4 نقاط الضعف
- ❌ أرقام هواتف ثابتة للسوبر أدمن: ممارسة غير آمنة
- ❌ عدم وجود انتهاء صلاحية فعال: إعادة تلقائية دون تدخل المستخدم
- ❌ تخزين التوكن محلياً: بدون Secure Enclave
- ❌ كلمة مرور ثابتة في الكود:
AK.passnpassenger - ❌ لا يوجد 2FA: للمشرفين
- ❌ لا يوجد audit log للتغييرات الحساسة
8. تحليل التوافقية بين الباك إند والأدمن
8.1 مصفوفة التوافق
| الوظيفة | الباك إند | الأدمن | الحالة |
|---|---|---|---|
| لوحة المعلومات | Admin/dashbord.php |
DashboardController |
✅ متوافق |
| لوحة V2 | Admin/v2/realtime_dashboard.php |
DashboardV2Controller |
✅ متوافق |
| قائمة السائقين | Admin/AdminCaptain/get.php |
captain_admin_controller.dart |
✅ متوافق |
| تفاصيل السائق | auth/syria/driver/driver_details.php |
captain_details.dart |
✅ متوافق |
| الركاب | Admin/getPassengerDetails.php |
passenger_admin_controller.dart |
✅ متوافق |
| أكواد الخصم | ride/promo/ |
promo_controller.dart |
✅ متوافق |
| التسعير | ride/kazan/ |
kazan_controller.dart |
✅ متوافق |
| الشكاوى | serviceapp/getComplaintAllData.php |
complaint_controller.dart |
✅ متوافق |
| المالية V2 | v2/financial/ |
financial_v2_controller.dart |
✅ متوافق |
| سجل التدقيق | v2/security/audit_logs.php |
security_v2_controller.dart |
✅ متوافق |
| الإحصائيات | Admin/getRidesPerMonth.php |
static_controller.dart |
✅ متوافق |
| المحادثة | ride/chat/ |
❌ غير موجود | ❌ غير متوافق |
| نظام التحفيز | ride/gamification/ |
❌ غير موجود | ❌ غير متوافق |
| تتبع حي | WebSocket | ❌ غير موجود | ❌ غير متوافق |
8.2 مشاكل التوافقية
- ملف routes.dart غير مكتمل: 7 مسارات فقط من أصل 30+ وظيفة تستخدم
Get.toNamed() - استخدام
Get.to()المباشر: بدون تعريفها في routes، مما يصعب تتبع التنقل - اختلاف أسماء الحقول: بعض الـ payload تختلف تسميتها بين الأدمن والباك إند
- غياب معالجة Versioning: لا توجد آلية لتحديد إصدار API
- نقاط نهاية غير مستخدمة: بعض endpoints في الباك إند لا تقابلها شاشات في الأدمن
9. الإضافات والتحسينات المقترحة
9.1 تحسينات أمنية (أولوية عالية) 🔴
-
إضافة 2FA للمشرفين
- إضافة مصادقة ثنائية عبر Google Authenticator أو OTP
- حماية الوصول للوحة الإدارة
-
تحسين نظام الصلاحيات
- استبدال أرقام الهواتف الثابتة بنظام صلاحيات ديناميكي
- إضافة صلاحيات دقيقة (Granular Permissions) بدلاً من admin/super_admin فقط
-
تسجيل الخروج من جميع الأجهزة
- إضافة
token_blacklistفي Redis - إمكانية إنهاء جلسات محددة
- إضافة
-
تشفير البيانات الحساسة
- نقل
api_key.dartإلى متغيرات بيئة آمنة - استخدام Secure Enclave لتخزين التوكنات
- نقل
9.2 تحسينات معمارية (أولوية متوسطة) 🟡
-
إعادة هيكلة routes.dart
- تعريف جميع المسارات (~30 مسار) في ملف routes
- استخدام
GetPageمعbindingوmiddleware
-
تقسيم admin_home_page.dart
- فصل إلى مكونات مستقلة (StatelessWidget)
- نقل كل قسم إلى ملف منفصل
-
طبقة خدمة موحدة (Service Layer)
- إنشاء BaseRepository/BaseService
- توحيد معالجة الـ CRUD
- إضافة retry policy و offline support
-
استخدام Riverpod/Bloc بدلاً من GetX
- GetX يعمل ولكن ليس الخيار الأمثل للتطبيقات الكبيرة
- تحسين فصل المسؤوليات (Separation of Concerns)
9.3 تحسينات وظيفية (أولوية متوسطة) 🟡
-
لوحة معلومات قابلة للتخصيص
- إضافة Widgets قابلة للسحب والإفلات
- حفظ تفضيلات المستخدم
-
تقارير PDF مصدرة
- تصدير الإحصائيات كـ PDF
- جداولة التقارير الدورية
-
نظام تنبيهات ذكي
- تنبيهات تلقائية عند تجاوز الحدود (عدد شكاوى، إلغاءات)
- Machine Learning للكشف عن السلوك الاحتيالي
-
محادثة مباشرة مع السائقين والركاب
- دمج chat داخل لوحة الإدارة
- استخدام WebSocket للتواصل الفوري
9.4 تحسينات تقنية (أولوية منخفضة) 🟢
-
Pagination و Infinite Scroll
- لجميع القوائم (السائقين، الركاب، الرحلات)
-
WebSocket للوحة الإدارة
- اتصال مباشر مع socket_intaleq
- تحديثات فورية بدون polling
-
دعم الوضع المظلم/الفاتح
- إضافة theme toggle
- دعم system theme
-
اختبارات واجهة المستخدم
- Widget Tests و Integration Tests
9.5 إضافات جديدة مقترحة (أولوية متنوعة) 💡
-
لوحة تحليلات الأعمال (BI Dashboard)
- رسوم بيانية تفاعلية
- مقارنة الأداء بين الفترات
- توقع الإيرادات المستقبلية
-
نظام إدارة المناطق الجغرافية
- رسم المناطق النشطة على الخريطة
- تحليل الكثافة والتغطية
- إدارة المناطق المحظورة
-
نظام Gamification Dashboard
- لوحة كاملة لنظام التحفيز (موجود API بدون UI)
- عرض تصنيفات السائقين
- إدارة المكافآت والتحديات
-
نظام إدارة الحملات التسويقية
- إنشاء حملات إشعارات مستهدفة
- A/B Testing للإشعارات
- قياس فعالية الحملات
-
تكامل مع منصات خارجية
- تصدير البيانات إلى Google Sheets
- Slack/Telegram notifications للإشعارات المهمة
- Webhook للمطورين الخارجيين
-
نظام توثيق API تلقائي
- Swagger/OpenAPI documentation
- Sandbox environment للاختبار
10. ملخص وتوصيات
10.1 ملخص الحالة الراهنة
نظام إنتلق هو نظام متكامل وقوي لتطبيقات نقل الركاب، مع:
- بنية تحتية متقدمة: Redis، JWT، HMAC، Rate Limiting
- مجموعة واسعة من الميزات: إدارة ركاب، سائقين، رحلات، مالية، شكاوى، إشعارات
- دعم متعدد الدول: مصر، سوريا، الأردن مع إمكانية التوسع
- تصميم عصري: واجهة مستخدم جذابة باللغة العربية
نقاط القوة الرئيسية:
- نظام مصادقة آمن مع JWT و HMAC متعدد الطبقات
- فصل الخدمات المالية والجغرافية في خوادم مستقلة
- دعم التتبع الجغرافي المكاني (Spatial Index)
- نظام V2 للوحة المعلومات بتحديث تلقائي
- واجهة إدارة شاملة تغطي معظم جوانب النظام
نقاط الضعف الرئيسية:
- عدم استخدام إطار عمل PHP (صعوبة في الصيانة والتوسع)
- كود كبير في ملفات مفردة (1123 سطر في admin_home_page.dart)
- نظام صلاحيات بدائي مع أرقام هواتف ثابتة
- نقص التوثيق والاختبارات
- طرق تنقل غير متسقة في التطبيق (مزيج بين Get.toNamed و Get.to)
10.2 خريطة الطريق المقترحة
المرحلة الأولى (شهر 1-2) - تحسينات أمنية وحرجة:
├── 2FA للمشرفين
├── تحسين نظام الصلاحيات
├── نقل المفاتيح السرية إلى بيئة آمنة
└── إصلاح الثغرات الأمنية
المرحلة الثانية (شهر 3-4) - تحسينات معمارية:
├── إعادة هيكلة routes
├── تقسيم الملفات الكبيرة
├── إضافة طبقة خدمة موحدة
└── Pagination لكل القوائم
المرحلة الثالثة (شهر 5-6) - إضافات جديدة:
├── لوحة BI Dashboard
├── WebSocket Integration
├── تقارير PDF
└── نظام إدارة المناطق
المرحلة الرابعة (شهر 7-8) - تحسينات متقدمة:
├── API Documentation (Swagger)
├── اختبارات آلية
├── Offline Support
└── تكامل مع منصات خارجية
10.3 توصيات فورية
- 🚨 عاجل: نقل
api_key.dartإلى متغيرات بيئة (.env) وليس في الكود - 🚨 عاجل: إزالة أرقام الهواتف الثابتة من كود التحقق من الصلاحيات
- ⚠️ مهم: إكمال ملف
routes.dartبجميع المسارات - ⚠️ مهم: إضافة
INDEXللأعمدة المستخدمة بكثرة في قاعدة البيانات - 📝 موصى به: إنشاء
README.mdشامل لكل مشروع
تم إعداد هذا التقرير بواسطة التحليل الآلي للنظام
تاريخ الإعداد: 6 يناير 2026
الإصدار: 1.0