701 lines
35 KiB
Markdown
701 lines
35 KiB
Markdown
<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> |