Fixes & Updates - 2026-06-01: Integrate Back-End v3 updates, fix call/connection issues across apps
This commit is contained in:
701
plan/intaleq_admin_analysis_report.md
Normal file
701
plan/intaleq_admin_analysis_report.md
Normal file
@@ -0,0 +1,701 @@
|
||||
<div dir="rtl" align="right">
|
||||
|
||||
# تقرير تحليل شامل لتطبيق إنتلق - لوحة الإدارة (Intaleq Admin)
|
||||
|
||||
---
|
||||
|
||||
## 📋 فهرس المحتويات
|
||||
|
||||
1. [نظرة عامة على النظام](#1-نظرة-عامة-على-النظام)
|
||||
2. [هيكل المشاريع والهندسة المعمارية](#2-هيكل-المشاريع-والهندسة-المعمارية)
|
||||
3. [تحليل الباك إند - الخادم الرئيسي (intaleq_v1)](#3-تحليل-الباك-إند---الخادم-الرئيسي)
|
||||
4. [تحليل لوحة الإدارة (intaleq_admin)](#4-تحليل-لوحة-الإدارة)
|
||||
5. [تحليل تطبيق خدمة العملاء (service_intaleq)](#5-تحليل-تطبيق-خدمة-العملاء)
|
||||
6. [قاعدة البيانات والموديلات](#6-قاعدة-البيانات-والموديلات)
|
||||
7. [نظام المصادقة والصلاحيات](#7-نظام-المصادقة-والصلاحيات)
|
||||
8. [تحليل التوافقية بين الباك إند والأدمن](#8-تحليل-التوافقية-بين-الباك-إند-والأدمن)
|
||||
9. [الإضافات والتحسينات المقترحة](#9-الإضافات-والتحسينات-المقترحة)
|
||||
10. [ملخص وتوصيات](#10-ملخص-وتوصيات)
|
||||
|
||||
---
|
||||
|
||||
## 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 نظام الأمان في الباك إند
|
||||
|
||||
1. **JWT Authentication**: جميع الطلبات تتطلب توكن JWT صالح
|
||||
2. **Rate Limiting**: عبر Redis لمنع الهجمات
|
||||
3. **تشفير البيانات**: `EncryptionHelper` مع مفتاح 32 بايت
|
||||
4. **HMAC للمعاملات المالية**: توقيع إضافي للخادم المالي
|
||||
5. **CORS Headers**: مقيدة وآمنة
|
||||
6. **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 نظام الصلاحيات
|
||||
|
||||
```dart
|
||||
// التحقق من الصلاحيات في admin_home_page.dart
|
||||
isSuperAdmin = (role == 'super_admin') ||
|
||||
(myPhone == '201023248456' || // أرقام محددة صلاحية مطلقة
|
||||
myPhone == '963992952235' ||
|
||||
myPhone == '963942542053');
|
||||
```
|
||||
|
||||
**مستويات الصلاحيات:**
|
||||
1. **super_admin**: صلاحية كاملة - رؤية المحفظة، إضافة كوادر، مراقبة الرحلات
|
||||
2. **admin**: صلاحية محدودة - إدارة عامة بدون صلاحيات مالية حساسة
|
||||
3. **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 نظام التوكن
|
||||
|
||||
```dart
|
||||
// طريقة الحصول على 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];
|
||||
```
|
||||
|
||||
**طبقات الأمان:**
|
||||
1. **JWT** - توقيع رمزي
|
||||
2. **تشفير 3 طبقات** - `X.c()` ثلاث مرات متتالية
|
||||
3. **HMAC** - للمعاملات المالية
|
||||
4. **Device Fingerprint** - `X-Device-FP` header
|
||||
|
||||
### 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 مشاكل التوافقية
|
||||
|
||||
1. **ملف routes.dart غير مكتمل**: 7 مسارات فقط من أصل 30+ وظيفة تستخدم `Get.toNamed()`
|
||||
2. **استخدام `Get.to()` المباشر**: بدون تعريفها في routes، مما يصعب تتبع التنقل
|
||||
3. **اختلاف أسماء الحقول**: بعض الـ payload تختلف تسميتها بين الأدمن والباك إند
|
||||
4. **غياب معالجة Versioning**: لا توجد آلية لتحديد إصدار API
|
||||
5. **نقاط نهاية غير مستخدمة**: بعض endpoints في الباك إند لا تقابلها شاشات في الأدمن
|
||||
|
||||
---
|
||||
|
||||
## 9. الإضافات والتحسينات المقترحة
|
||||
|
||||
### 9.1 تحسينات أمنية (أولوية عالية) 🔴
|
||||
|
||||
1. **إضافة 2FA للمشرفين**
|
||||
- إضافة مصادقة ثنائية عبر Google Authenticator أو OTP
|
||||
- حماية الوصول للوحة الإدارة
|
||||
|
||||
2. **تحسين نظام الصلاحيات**
|
||||
- استبدال أرقام الهواتف الثابتة بنظام صلاحيات ديناميكي
|
||||
- إضافة صلاحيات دقيقة (Granular Permissions) بدلاً من admin/super_admin فقط
|
||||
|
||||
3. **تسجيل الخروج من جميع الأجهزة**
|
||||
- إضافة `token_blacklist` في Redis
|
||||
- إمكانية إنهاء جلسات محددة
|
||||
|
||||
4. **تشفير البيانات الحساسة**
|
||||
- نقل `api_key.dart` إلى متغيرات بيئة آمنة
|
||||
- استخدام Secure Enclave لتخزين التوكنات
|
||||
|
||||
### 9.2 تحسينات معمارية (أولوية متوسطة) 🟡
|
||||
|
||||
5. **إعادة هيكلة routes.dart**
|
||||
- تعريف جميع المسارات (~30 مسار) في ملف routes
|
||||
- استخدام `GetPage` مع `binding` و `middleware`
|
||||
|
||||
6. **تقسيم admin_home_page.dart**
|
||||
- فصل إلى مكونات مستقلة (StatelessWidget)
|
||||
- نقل كل قسم إلى ملف منفصل
|
||||
|
||||
7. **طبقة خدمة موحدة (Service Layer)**
|
||||
- إنشاء BaseRepository/BaseService
|
||||
- توحيد معالجة الـ CRUD
|
||||
- إضافة retry policy و offline support
|
||||
|
||||
8. **استخدام Riverpod/Bloc بدلاً من GetX**
|
||||
- GetX يعمل ولكن ليس الخيار الأمثل للتطبيقات الكبيرة
|
||||
- تحسين فصل المسؤوليات (Separation of Concerns)
|
||||
|
||||
### 9.3 تحسينات وظيفية (أولوية متوسطة) 🟡
|
||||
|
||||
9. **لوحة معلومات قابلة للتخصيص**
|
||||
- إضافة Widgets قابلة للسحب والإفلات
|
||||
- حفظ تفضيلات المستخدم
|
||||
|
||||
10. **تقارير PDF مصدرة**
|
||||
- تصدير الإحصائيات كـ PDF
|
||||
- جداولة التقارير الدورية
|
||||
|
||||
11. **نظام تنبيهات ذكي**
|
||||
- تنبيهات تلقائية عند تجاوز الحدود (عدد شكاوى، إلغاءات)
|
||||
- Machine Learning للكشف عن السلوك الاحتيالي
|
||||
|
||||
12. **محادثة مباشرة مع السائقين والركاب**
|
||||
- دمج chat داخل لوحة الإدارة
|
||||
- استخدام WebSocket للتواصل الفوري
|
||||
|
||||
### 9.4 تحسينات تقنية (أولوية منخفضة) 🟢
|
||||
|
||||
13. **Pagination و Infinite Scroll**
|
||||
- لجميع القوائم (السائقين، الركاب، الرحلات)
|
||||
|
||||
14. **WebSocket للوحة الإدارة**
|
||||
- اتصال مباشر مع socket_intaleq
|
||||
- تحديثات فورية بدون polling
|
||||
|
||||
15. **دعم الوضع المظلم/الفاتح**
|
||||
- إضافة theme toggle
|
||||
- دعم system theme
|
||||
|
||||
16. **اختبارات واجهة المستخدم**
|
||||
- Widget Tests و Integration Tests
|
||||
|
||||
### 9.5 إضافات جديدة مقترحة (أولوية متنوعة) 💡
|
||||
|
||||
17. **لوحة تحليلات الأعمال (BI Dashboard)**
|
||||
- رسوم بيانية تفاعلية
|
||||
- مقارنة الأداء بين الفترات
|
||||
- توقع الإيرادات المستقبلية
|
||||
|
||||
18. **نظام إدارة المناطق الجغرافية**
|
||||
- رسم المناطق النشطة على الخريطة
|
||||
- تحليل الكثافة والتغطية
|
||||
- إدارة المناطق المحظورة
|
||||
|
||||
19. **نظام Gamification Dashboard**
|
||||
- لوحة كاملة لنظام التحفيز (موجود API بدون UI)
|
||||
- عرض تصنيفات السائقين
|
||||
- إدارة المكافآت والتحديات
|
||||
|
||||
20. **نظام إدارة الحملات التسويقية**
|
||||
- إنشاء حملات إشعارات مستهدفة
|
||||
- A/B Testing للإشعارات
|
||||
- قياس فعالية الحملات
|
||||
|
||||
21. **تكامل مع منصات خارجية**
|
||||
- تصدير البيانات إلى Google Sheets
|
||||
- Slack/Telegram notifications للإشعارات المهمة
|
||||
- Webhook للمطورين الخارجيين
|
||||
|
||||
22. **نظام توثيق API تلقائي**
|
||||
- Swagger/OpenAPI documentation
|
||||
- Sandbox environment للاختبار
|
||||
|
||||
---
|
||||
|
||||
## 10. ملخص وتوصيات
|
||||
|
||||
### 10.1 ملخص الحالة الراهنة
|
||||
|
||||
نظام إنتلق هو نظام متكامل وقوي لتطبيقات نقل الركاب، مع:
|
||||
- **بنية تحتية متقدمة**: Redis، JWT، HMAC، Rate Limiting
|
||||
- **مجموعة واسعة من الميزات**: إدارة ركاب، سائقين، رحلات، مالية، شكاوى، إشعارات
|
||||
- **دعم متعدد الدول**: مصر، سوريا، الأردن مع إمكانية التوسع
|
||||
- **تصميم عصري**: واجهة مستخدم جذابة باللغة العربية
|
||||
|
||||
**نقاط القوة الرئيسية:**
|
||||
1. نظام مصادقة آمن مع JWT و HMAC متعدد الطبقات
|
||||
2. فصل الخدمات المالية والجغرافية في خوادم مستقلة
|
||||
3. دعم التتبع الجغرافي المكاني (Spatial Index)
|
||||
4. نظام V2 للوحة المعلومات بتحديث تلقائي
|
||||
5. واجهة إدارة شاملة تغطي معظم جوانب النظام
|
||||
|
||||
**نقاط الضعف الرئيسية:**
|
||||
1. عدم استخدام إطار عمل PHP (صعوبة في الصيانة والتوسع)
|
||||
2. كود كبير في ملفات مفردة (1123 سطر في admin_home_page.dart)
|
||||
3. نظام صلاحيات بدائي مع أرقام هواتف ثابتة
|
||||
4. نقص التوثيق والاختبارات
|
||||
5. طرق تنقل غير متسقة في التطبيق (مزيج بين 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 توصيات فورية
|
||||
|
||||
1. **🚨 عاجل**: نقل `api_key.dart` إلى متغيرات بيئة (`.env`) وليس في الكود
|
||||
2. **🚨 عاجل**: إزالة أرقام الهواتف الثابتة من كود التحقق من الصلاحيات
|
||||
3. **⚠️ مهم**: إكمال ملف `routes.dart` بجميع المسارات
|
||||
4. **⚠️ مهم**: إضافة `INDEX` للأعمدة المستخدمة بكثرة في قاعدة البيانات
|
||||
5. **📝 موصى به**: إنشاء `README.md` شامل لكل مشروع
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
---
|
||||
|
||||
**تم إعداد هذا التقرير بواسطة التحليل الآلي للنظام**
|
||||
|
||||
*تاريخ الإعداد: 6 يناير 2026*
|
||||
|
||||
*الإصدار: 1.0*
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user