Logistics & Freight Management System
LogisticsAbout the Project
**لوجستياتي (Logistiyati)** هو نظام برمجي متقدم وشامل لإدارة شركات الشحن، النقل البري، وخدمات التوصيل الإقليمية. تم بناء المنظومة باستخدام أحدث تقنيات الويب (**Laravel 12**, **Livewire 4.2**, **Tailwind CSS**) لتوفير أداء فائق وسرعة استجابة في الوقت الفعلي مع دعم كامل وأصيل للغة العربية واتجاه اليمين إلى اليسار (RTL).
يقدم النظام واجهتين متكاملتين:
1. **بوابة عامة للجمهور والعملاء (`/`)**: صفحة هبوط حديثة مدعومة بخلفية فيديو متحركة وتصميم زجاجي (Glassmorphism) تتيح للعملاء تتبع شحناتهم خطوة بخطوة بالرقم التسلسلي وتحميل بوليصة الشحن إلكترونياً.
2. **بوابة العمليات والإدارة (`/portal/login`)**: منصة تشغيلية قوية مقسمة حسب الصلاحيات الدقيقة لكل من:
- **المدير العام (Super Admin)**: إدارة شاملة للفروع، المستخدمين، السائقين، الرحلات، الشحنات، المحافظ والتقارير المالية وإعدادات الهوية.
- **موظفي الفروع (Employees)**: واجهة محصورة بنطاق الفرع التابع له الموظف لتسجيل الطرود، مسح الباركود، استقبال الرحلات، ومتابعة رصيد العمولات الشخصية.
- **السائقين (Drivers)**: واجهة مخصصة للهواتف الذكية لمتابعة الشحنات المسندة إليهم وحالات التوصيل ومعلومات الاتصال.
---
## 🚀 المميزات الرئيسية / Key Features
### 1. بوابة التتبع المباشر للعملاء / Live Tracking Portal
- **استعلام فوري برقم التتبع**: بحث مباشر برقم الشحنة (مثل `TRK-XXXXXXXX`) دون الحاجة إلى تسجيل دخول.
- **مخطط زمني تفاعلي (Interactive Status Timeline)**: استعراض مراحل الشحنة الأربع بدقة مع التواريخ والملاحظات:
1. **قيد التجهيز (Processing)**: تم استلام الطرد في فرع المنشأ وتسجيل أبعاده ورسومه.
2. **تم الشحن (Shipped)**: الطرد مدرج ضمن رحلة ناقلة متجهة لفرع المقصد.
3. **الجمارك والتخليص (Customs)**: وصول الطرد إلى مرحلة الفحص الجمركي أو الإيداع الحدودي.
4. **تم التسليم (Delivered)**: تسليم الشحنة للعميل وتوقيع مسؤول الفرع أو السائق.
- **تفاصيل السائق والوسيلة**: إظهار اسم السائق، رقم الهاتف، ونوع المركبة.
- **طباعة بوليصة الشحن مباشرة**: إمكانية استعراض وتحميل بوليصة الشحن بصيغة PDF فوراً.
- **خلفية فيديو تفاعلية**: دعم عرض فيديو لوجستي بخلفية مظلمة وتأثيرات بصرية جذابة مع خيار التبديل من لوحة التحكم.
### 2. إدارة الفروع والشبكة الإقليمية / Multi-Branch Architecture
- **فروع متعددة في الشرق الأوسط**: مهيأ مسبقاً بفروع رئيسية (دبي `DXB`، الرياض `RUH`، الدوحة `DOH`، عمّان `AMM`، القاهرة `CAI`).
- **عزل بيانات الفروع تلقائياً (Branch Data Isolation)**:
- استخدام سمة `BelongsToBranch` ونطاق الاستعلام العام `BranchScope`.
- الموظف يرى ويتعامل تلقائياً فقط مع شحنات ورحلات الفرع المنتمي إليه.
- المدير العام (Super Admin) يمتلك وصولاً شاملاً لكافة الفروع مع إمكانية التبديل والفلترة بينها.
- **إحداثيات جغرافية (Geographical Coordinates)**: تخزين خطوط الطول والعرض لكل فرع لدعم الخرائط وتقدير المسارات.
### 3. إدارة الشحنات ودورة حياة الطرود / Shipment Lifecycle
- **توليد آلي لأرقام التتبع**: توليد معرّف مشفّر وفريد لكل طرد (`TRK-XXXXXXXX`).
- **دعم العملات المتعددة**: دعم الحساب والتقارير بعملات متعددة:
- **الدولار الأمريكي (`USD`)**: `$`
- **الريال السعودي (`SAR`)**: `ر.س`
- **الريال اليمني (`YER`)**: `ر.ي`
- **بيانات أطراف الشحنة**: تسجيل اسم وبيانات المرسل والمستلم والعميل المسجل.
- **سجل تتبع تدقيقي لكل تغيير (Shipment Audit Logs)**:
- مراقبة تلقائية بواسطة `ShipmentObserver`.
- تسجيل تاريخ ووقت كل تعديل للحالة مع ملاحظات الموظف وهوية المستخدم المسؤول.
- تسجيل توقيع الاستلام إلكترونياً (`signed_by_user_id`).
### 4. إدارة الرحلات وتوجيه الأسطول / Trip & Fleet Dispatch
- **إنشاء وتتبع الرحلات الناقلة**: تحديد فرع المنشأ، بلد المغادرة، وجهة الوصول، وتاريخ المغادرة.
- **إسناد المركبة والسائق**: ربط الرحلة بالسائق والمركبة المعتمدة (رقم اللوحة / الموديل).
- **حالات الرحلات**:
- `pending` (قيد الانتظار والتحميل)
- `in_transit` (في الطريق)
- `arrived` (وصلت إلى فرع المقصد)
- **مانيفست الشحنات المرافقة (Manifests)**: ربط الطرود تلقائياً بالرحلة مع إمكانية عرض كشف الشحنات المحملة في الرحلة عبر نافذة منبثقة تفاعلية (`TripHistoryModal`).
### 5. محرك مسح الباركود ورمز الاستجابة / Barcode & QR Scanner
- **ماسح تفاعلي بالكاميرا والماسحات اليدوية**: صفحة مخصصة (`/employee/barcode-scanning`) تدعم كاميرا الهاتف/الحاسوب وأجهزة قارئ الباركود (Barcode Guns).
- **تعرف سريع وتغيير فوري للحالة**: جلب فوري لبيانات الطرد بمجرد مسح الكود، مع إمكانية تحديث الحالة بنقرة واحدة داخل واجهة موظف الفرع.
- **توليد مزدوج للأكواد**: توليد باركود خطي Code 128 ورمز QR متصلين مباشرة بصفحة التتبع الإلكترونية.
### 6. بوليصة الشحن الرسمية والمستندات / Printable Waybill
- **توليد فوري لبوالص الشحن (Waybills)**: عبر المسار `/shipments/{shipment}/waybill`.
- **مواصفات قياسية عالمية**:
- تصدير بصيغة PDF عالية الدقة باستخدام مكتبة `mPDF` المتوافقة تماماً مع النصوص العربية وحركات الحروف (`autoArabic`).
- باركود `Code 128` عالي الوضوح.
- رمز استجابة سريعة `QR Code` قابل للمسح بالجوال للتحقق اللحظي من أصالة المستند.
- جدول تفصيلي للمرسل، المستلم، الأبعاد، الوزن، العملة والرسوم، بيانات السائق، والشروط والأحكام.
### 7. النظام المالي والمحافظ الرقمية / Wallets & Multi-Currency Engine
- **محافظ الفروع (Branch Wallets)**: تسجيل إيرادات الفرع وصافي أرباح الشحنات لكل عملة بشكل مستقل.
- **محافظ عمولات الموظفين (Employee Wallets)**:
- احتساب نسبة عمولة الموظف المسجلة على الشحنة (`employee_commission_percent`).
- تحويل العمولة تلقائياً لمحفظة الموظف فور تحول حالة الشحنة إلى `delivered` (تم التسليم).
- **خدمة التخصيص المالي الآمنة (`WalletAllocationService`)**:
- عمليات مالية ذرية غير قابلة للتكرار (Idempotent DB Transactions).
- ضبط رصيد المحافظ عند تعديل تكلفة الشحنة أو التراجع عن حالة التسليم.
- جدول تدقيق مالي تفصيلي لجميع الحركات (`WalletTransaction`).
- **لوحة التحليلات والتقارير المالية**: رسوم بيانية ومؤشرات للأرباح، التكاليف، والإيرادات الشهرية والسنوية.
### 8. الصلاحيات والمستخدمين / RBAC & Roles
- يعتمد النظام على باقة `spatie/laravel-permission` لفرض الأمان على مستوى المسارات والمكونات:
- **Admin**: صلاحية مطلقة لكافة وظائف النظام والمالية.
- **Employee**: صلاحيات عملياتية تشمل: `create trips`, `create shipments`, `view shipments`, `view trips`, `view operational trips`, `view reports`, `barcode scanning`, `view wallet`.
- **Driver**: استعراض الشحنات المكلف بها وتحديث حالات التسليم.
- **Customer**: استعلام الشحنات والبيانات الشخصية.
### 9. الهوية البصرية والتخصيص / Dynamic Branding & CMS
- إمكانية تعديل إعدادات وهوية الموقع ديناميكياً من شاشة الإدارة (`/admin/settings`):
- اسم النظام، الشعار (Logo)، الألوان الأساسية والثانوية (Primary/Secondary Colors).
- تشغيل أو تعطيل فيديوهات الخلفية في بوابات الدخول والتتبع.
- تخصيص العناوين والبادجات الترويجية في الصفحة الرئيسية وبوابة الموظفين.
- حفظ الإعدادات في جدول `site_settings` مع كاش تلقائي عبر `BrandingService`.
Technologies Used
Laravel
Livewire
**Tailwind CSS**
**Spatie Laravel Permission**
**mPDF & DomPDF**
**Milon Barcode**
**Simple Software IO QR**
**MySQL / SQLite**