FuelLink - نظام إدارة وتتبع توزيع الوقود
نظرة عامة
FuelLink هو نظام متكامل وحديث لإدارة وتتبع عمليات توزيع الوقود من المزودين إلى محطات الوقود. يوفر النظام حلولاً شاملة لإدارة الطلبات، وتتبع الشاحنات في الوقت الفعلي، وإدارة المحطات بكفاءة عالية.
المميزات الرئيسية
إدارة الطلبات
* إنشاء طلبات الوقود مع تحديد الكمية ونوع الوقود والمحطة المستهدفة.
* سير عمل متكامل يبدأ من إنشاء الطلب وينتهي بالتسليم والتأكيد النهائي.
* دعم 12 حالة مختلفة للطلب لتتبع جميع مراحل العملية بدقة.
* إدارة عمليات الدفع ودعم طرق دفع متعددة.
* إمكانية متابعة حالة الطلب في جميع مراحل التنفيذ.
إدارة المستخدمين والأدوار
يدعم النظام ثلاثة أنواع رئيسية من المستخدمين:
* المشرف Supervisor: إدارة الطلبات والمحطات والسائقين.
* المزود Supplier: استقبال الطلبات والموافقة عليها أو رفضها وتسليم الوقود للسائقين.
* السائق Driver: استلام الطلبات وتحديث الموقع وتتبع حالة الرحلة.
كما يوفر النظام لوحات تحكم مخصصة لكل نوع من المستخدمين وفقاً للصلاحيات والمهام الخاصة به.
التتبع في الوقت الفعلي
* تتبع مباشر لمواقع الشاحنات باستخدام SignalR.
* خرائط تفاعلية باستخدام Leaflet.js.
* حساب المسار المناسب من موقع السائق إلى المحطة باستخدام OSRM.
* عرض المسافة المتبقية والوقت المتوقع للوصول والسرعة الحالية.
* حفظ سجل كامل لمسار الرحلة.
إدارة المحطات
* إنشاء وتعديل وحذف المحطات.
* تحديد موقع المحطة بدقة على الخريطة.
* حفظ بيانات المحطة مثل الاسم والعنوان والمدينة ورقم الهاتف والوصف.
* اختيار المحطات بسهولة عند إنشاء طلبات الوقود.
نظام الدفع
* دعم بطاقات الائتمان وبطاقات الخصم والتحويل البنكي والدفع النقدي.
* حماية بيانات البطاقات الحساسة.
* الاحتفاظ بآخر أربعة أرقام فقط من البطاقة عند الحاجة.
* تتبع حالات الدفع مثل قيد الانتظار وقيد المعالجة والمكتمل والفاشل والمسترد.
لوحات التحكم والإحصائيات
لوحة تحكم المشرف
* عرض جميع الطلبات.
* عرض الإحصائيات الرئيسية.
* إدارة المحطات والمستخدمين والسائقين.
* متابعة عمليات التوصيل.
لوحة تحكم المزود
* عرض الطلبات المخصصة للمزود.
* مراجعة الطلبات والموافقة عليها أو رفضها.
* متابعة وتسليم الطلبات للسائقين.
لوحة تحكم السائق
* عرض الطلبات المخصصة للسائق.
* تحديث حالة الطلب.
* تحديث الموقع بشكل تلقائي.
* متابعة الرحلة والمسار إلى المحطة.
التقنيات المستخدمة
Backend
* .NET 8.0
* ASP.NET Core MVC
* Entity Framework Core 8.0
* SQL Server
* MediatR لتنفيذ نمط Mediator وCQRS
* FluentValidation للتحقق من صحة البيانات
* SignalR للاتصالات في الوقت الفعلي
* JWT Authentication للمصادقة
* ASP.NET Core Identity لإدارة المستخدمين والأدوار
Frontend
* Razor Pages
* Bootstrap 5
* jQuery
* Leaflet.js
* OSRM لحساب المسارات
* Font Awesome
DevOps and Tools
* Swagger/OpenAPI لتوثيق واجهات API
* Serilog للتسجيل والمراقبة
* CORS لدعم الاتصالات عبر النطاقات
* HTTPS لتشفير الاتصالات
البنية المعمارية
Clean Architecture
النظام مبني وفق مبادئ Clean Architecture مع فصل واضح بين طبقات التطبيق:
* Domain Layer: الكيانات الأساسية وقواعد العمل.
* Application Layer: منطق التطبيق وتنفيذ CQRS.
* Infrastructure Layer: الخدمات الخارجية والمصادقة والتعامل مع قواعد البيانات.
* Presentation Layer: واجهات المستخدم ونقاط الدخول للنظام.
CQRS Pattern
* Commands لتنفيذ عمليات الإنشاء والتحديث والحذف.
* Queries لاسترجاع البيانات.
* Handlers لمعالجة كل Command أو Query بشكل مستقل.
Repository Pattern
* IApplicationDbContext كواجهة موحدة للتعامل مع البيانات.
* Entity Framework Core كتنفيذ فعلي للوصول إلى قاعدة البيانات.
واجهات المستخدم
واجهة المشرف
* لوحة تحكم تعرض جميع الطلبات مع فلاتر متقدمة.
* إنشاء طلبات الوقود واختيار المحطة.
* عرض تفاصيل الطلب وتعيين السائق.
* إدارة المحطات بشكل كامل مع تحديد المواقع على الخريطة.
* إنشاء وإدارة المستخدمين من مشرفين ومزودين وسائقين.
* تتبع الطلبات وموقع السائق والمسار إلى المحطة.
واجهة المزود
* عرض الطلبات المخصصة للمزود.
* عرض تفاصيل الطلب.
* الموافقة على الطلب أو رفضه مع إضافة سبب الرفض.
* تحديث حالة تسليم الوقود للسائق.
واجهة السائق
* عرض الطلبات المخصصة للسائق.
* تحديث حالة الطلب في كل مرحلة.
* إرسال الموقع الحالي بشكل تلقائي.
* متابعة الرحلة والموقع الحالي على الخريطة.
الأمان
* JWT Authentication للمصادقة باستخدام JSON Web Tokens.
* Role-Based Authorization للتحكم في الوصول بناءً على أدوار المستخدمين.
* Password Hashing لحماية كلمات المرور.
* HTTPS لتشفير الاتصالات.
* Data Encryption لحماية البيانات الحساسة.
* CORS Policy للتحكم في الاتصالات بين النطاقات.
سير العمل
إنشاء الطلب
يقوم المشرف بإنشاء طلب جديد مع تحديد كمية الوقود ونوعه والمحطة المستهدفة.
الدفع
تتم معالجة عملية الدفع باستخدام إحدى طرق الدفع المتاحة، ثم يتم تحديث حالة الطلب إلى مدفوع.
الموافقة أو الرفض
يقوم المزود بمراجعة الطلب ويمكنه الموافقة عليه أو رفضه مع توضيح سبب الرفض.
تعيين السائق
بعد موافقة المزود، يقوم المشرف بتعيين سائق للطلب وتحديث حالة الطلب إلى تم تعيين السائق.
تسليم الوقود للسائق
يقوم المزود بتسليم الوقود للسائق وتحديث حالة الطلب إلى تم التسليم للسائق.
استلام الوقود من المزود
يؤكد السائق استلام الوقود وتحديث حالة الطلب إلى استلم من المزود.
التوجه إلى المحطة
يبدأ السائق الرحلة باتجاه المحطة ويتم تحديث حالة الطلب إلى في الطريق للمحطة، مع تفعيل التتبع في الوقت الفعلي.
الوصول إلى المحطة
يؤكد السائق وصوله إلى المحطة ويتم تحديث حالة الطلب إلى وصل للمحطة.
تسليم الوقود
يؤكد السائق إتمام عملية تسليم الوقود وتحديث حالة الطلب إلى تم التسليم.
التأكيد النهائي
يقوم المشرف بتأكيد استلام الوقود وتحديث حالة الطلب إلى مؤكد.
المزايا التنافسية
الكفاءة
* تتبع الموقع في الوقت الفعلي.
* حساب المسار المناسب لتقليل الوقت واستهلاك الوقود.
* إدارة جميع عمليات التوزيع من نظام مركزي واحد.
الأمان
* مصادقة آمنة باستخدام JWT.
* حماية البيانات الحساسة.
* صلاحيات منفصلة لكل نوع من المستخدمين.
سهولة الاستخدام
* واجهة عربية متكاملة مع دعم RTL.
* تصميم متجاوب يعمل على أجهزة الكمبيوتر والأجهزة اللوحية والهواتف.
* تجربة استخدام بسيطة وسهلة.
الأداء
* الاعتماد على .NET 8.0.
* تحسين استعلامات قاعدة البيانات باستخدام الفهارس المناسبة.
* استخدام التخزين المؤقت لتحسين الأداء وتقليل العمليات غير الضرورية.
قابلية التوسع
* بنية معمارية منظمة تسهل إضافة الميزات الجديدة.
* RESTful API لإمكانية التكامل مع الأنظمة الأخرى.
* استخدام SQL Server لدعم أحجام البيانات والأحمال المختلفة.
حالات الاستخدام
الشركات الكبيرة
* إدارة عدد كبير من المحطات.
* تتبع جميع الشاحنات من مركز واحد.
* توفير تقارير وإحصائيات شاملة.
الشركات الصغيرة والمتوسطة
* نظام متكامل لإدارة عمليات توزيع الوقود.
* سهولة الاستخدام والإدارة.
* تقليل الوقت والجهد في متابعة العمليات.
مزودو الوقود
* إدارة الطلبات بكفاءة.
* متابعة عمليات التسليم.
* تحسين عمليات توزيع الوقود.
تصميم واجهة المستخدم
* تصميم عصري ومتجاوب.
* لوحة ألوان متناسقة ومناسبة لطبيعة النظام.
* استخدام أيقونات واضحة من Font Awesome.
* تجربة استخدام سلسة مع تفاعلات سريعة.
الدعم والتطوير
تم بناء النظام بالاعتماد على مجموعة من أفضل ممارسات تطوير البرمجيات، وتشمل:
* Clean Code
* SOLID Principles
* Design Patterns
* Error Handling
* Logging
* فصل المسؤوليات بين مكونات النظام.
* تصميم قابل للصيانة والتطوير المستقبلي.
الملاحظات التقنية
* .NET 8.0 لتوفير أداء واستقرار عاليين.
* Entity Framework Core لإدارة الوصول إلى البيانات.
* SignalR لتنفيذ الاتصالات والتحديثات في الوقت الفعلي.
* CQRS لفصل عمليات القراءة عن عمليات الكتابة.
* Clean Architecture لبناء نظام منظم وقابل للصيانة والتوسع.
* SQL Server لإدارة البيانات.
* OSRM لحساب المسارات الفعلية.
* Leaflet.js لعرض الخرائط والتتبع الجغرافي.
الخلاصة
FuelLink هو نظام متكامل لإدارة وتتبع عمليات توزيع الوقود، يجمع بين إدارة الطلبات والدفع وتتبع الشاحنات وإدارة المحطات في منصة واحدة.
يوفر النظام بيئة آمنة وفعالة لإدارة عمليات التوزيع، مع دعم التتبع في الوقت الفعلي، وإدارة الصلاحيات، ولوحات التحكم المخصصة، والتكامل مع الخرائط وحساب المسارات.
النظام مناسب للشركات الكبيرة والصغيرة والمتوسطة، كما يوفر بنية تقنية قابلة للتوسع والتطوير وفق احتياجات العمل المستقبلية.