FleetHub وثيقة

الأسئلة المتداولة

هل يعمل FleetHub على أرخص خطة Hostinger Single؟

نعم — FleetHub متوافق تمامًا مع Hostinger Single (~ 2.99 دولارًا أمريكيًا في الشهر). تتضمن الخطة الفردية PHP 8.3 وMySQL وCron Jobs وSSL مجاني. لا حاجة لSSH، الملحن أو سطر الأوامر. راجع القسم تثبيت Hostinger.

هل أحتاج إلى مهارات تقنية للتثبيت؟

ليست كذلك. Web Installer يتعامل مع كل شيء: اختبار الطلب وقاعدة البيانات والترحيل وإنشاء حساب المسؤول. ما عليك سوى تحميل الملف والانتقال إلى /install واتباع التعليمات.

كيف تعمل رسائل البريد الإلكتروني المجدولة (تنبيهات الامتثال/الصيانة)؟

يستخدم FleetHub جدولة Laravel. ما عليك سوى تكوين وظيفة كرون للتشغيل كل دقيقة؛ يقوم Laravel تلقائيًا بتشغيل كل مهمة في الوقت المحدد. على cPanel: متقدم → Cron Jobs. على Hostinger: hPanel → متقدم → Cron Jobs. إذا لم يكن لدى المضيف cron، فاستخدم عنوان URL الخاص بـ Cron في التطبيق مع cron-job.org.

ما هي طرق الاستهلاك المدعومة؟

ثلاث طرق: خط مستقيم، الرصيد المتناقص ووحدات الإنتاج (بالكيلومترات على مدار الساعة). يتم تحديث قيمة السيارة شهريًا وإدراجها في جدول التكلفة الإجمالية للملكية.

هل يعمل الماسح الضوئي QR على الهواتف؟

نعم - يقوم السائقون والمديرون بمسح رمز الاستجابة السريعة للمركبة باستخدام كاميرا المتصفح عبر html5-qrcode. تتطلب عمليات الفحص السريع (الوقود، الساعة، المتاعب) التسجيل. يتطلب HTTPS.

هل يمكنني إضافة حقول خاصة بدون كود؟

يملك. المسؤول → الحقول المخصصة يسمح بإضافة سمات غير محدودة، ووضع العلامات حسب نوع السيارة، ووضع العلامات الإلزامية، والفرز بالسحب والإفلات.

كم عدد اللغات التي يدعمها FleetHub؟

11 لغة: الإنجليزية والفيتنامية والإسبانية والفرنسية والألمانية والصينية واليابانية والبرتغالية (BR) والروسية والعربية (RTL) والهندية. إدارة الترجمات في الإدارة → الترجمات.

هل يمكن تثبيت FleetHub على استضافة cPanel المشتركة؟

نعم — يعمل FleetHub على استضافة مشاركة cPanel مع PHP 8.2+ وMySQL وCron Jobs. لا حاجة للملحن أو Node.js على الخادم. راجع القسم تثبيت cPanel.

كيفية إعادة تسمية العلامة التجارية FleetHub (صفحة تسجيل الدخول وعنوان علامة التبويب والألوان)؟
يمكن تغيير العلامة التجارية

FleetHub بالكامل من المسؤول — لا حاجة لتغيير الرمز أو npm run build. شعار تسجيل الدخول والتذييل والشارة وعنوان علامة التبويب ضمن الإعدادات → العلامة التجارية → اسم التطبيق. علامة التبويب المظهر تسمح بتخصيص اللون الفاتح/الداكن.

قائمة التحقق من تغيير العلامة التجارية: التحديث اسم التطبيق → تحرير auth.login_subtitle حسب اللغة → تخصيص اللون في الإعدادات → المظهر.

مرجع سريع:

العنصرمثالكيفية التغيير
الشعار & الاسمأسطول ABCالإعدادات → العلامة التجارية → اسم التطبيق
ترجمات تسجيل الدخولأدخل المعلومات للوصول إلى FleetHubالإدارة → الترجماتauth.login_subtitle
عنوان علامة تبويب المتصفحاسم التطبيقالإعدادات → العلامة التجارية → اسم التطبيق
ألوان التطبيقلوحة ألوان مخصصةالإعدادات → المظهر

1. الشعار والاسم: مسؤول تسجيل الدخول → الإعدادات → العلامة التجارية → تحديث اسم التطبيق (وتحميل الشعار إذا لزم الأمر) → حفظ.

2. ترجمات تسجيل الدخول: تحرير auth.login_subtitle في الإدارة → الترجمات أو الملف lang/{locale}/auth.php.

3. لون التطبيق: الإعدادات → المظهر — تكوينات ألوان منفصلة للضوء والظلام. انقر على حفظ المظهر للتقديم.

ملخص

FleetHub نظام مؤسسي لإدارة أصول أسطول المركبات للمركبات الداخلية للشركة (50–200 مركبة). مبني على Laravel 11 وVue 3 وTailwind CSS — يغطي المركبات، السائقين، طلبات المركبات، التسليم مع خريطة الأضرار، سجلات الوقود، المصروفات، تحليلات TCO، متابعة الامتثال، وتقييم صحة الأسطول. غير مصمم لأعمال التاكسي أو تأجير السيارات.

مسح QR بسرعة

امسح QR ضوئيًا للمركبة لتسجيل الوقود أو تحديث الساعة أو الإبلاغ عن المشكلات - تحسين الهاتف المحمول للسائقين.

جدول التكلفة الإجمالية للملكية

التكلفة الإجمالية للملكية حسب المركبات والأسطول — الشراء والوقود والصيانة والتأمين والمزيد.

تسليم السيارة

تسليم الاستيراد/التصدير باستخدام مخطط الضرر ثنائي الأبعاد وقائمة المراجعة والصور والتوقيع وتقرير PDF.

النتيجة الصحية للأسطول

النتيجة اليومية مع التفاصيل - الصيانة المتأخرة، وانتهاء الامتثال، ومخالفات الوقود.

تتبع الامتثال

التأمين، التسجيل، ضريبة الطريق، الترخيص، رخصة القيادة - تنبيهات 14/30/7/1 يوم.

تقارير الأسطول

7 تقارير ورسوم بيانية مدمجة وتصدير Excel وPDF.

الخادم مطلوب

  • PHP 8.2 أو أعلى (8.3 مستحسن)
  • MySQL 5.7+ أو MariaDB 10.3+
  • Composer 2.x (التطوير المحلي فقط — غير مطلوب في الاستضافة المشتركة)
  • Node.js 18+ وnpm 9+ (فقط للإصدارات الأمامية المحلية)
  • خادم الويب: Apache أو Nginx

ملحق PHP مطلوب

  • OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo

سعة القيادة

الحد الأدنى ~ 200 ميجابايت. أحكام إضافية لصور المركبات وإيصالات الوقود وصور التسليم ووثائق الامتثال.

جلسة

الخيار أ - مثبت الويب (مستحسن)

  1. تحميل ملفات المشروع إلى خادم الويب.
  2. قم بتوجيه جذر المستند إلى المجلد public/.
  3. التفويض: storage/ و bootstrap/cache/ يجب أن يكونا قابلين للكتابة (chmod 775).
  4. انسخ .env.example إلى .env واضبط APP_KEY (قم بتشغيل php artisan key:generate إذا كان SSH متاحًا، أو راجع cPanel الإعدادات → الخطوة 5).
  5. الوصول إلى https://yourdomain.com/install في متصفحك.
  6. اتبع المعالج - المتطلبات ← قاعدة البيانات ← الترحيل ← حساب المسؤول ← تم. حدد تضمين بيانات العرض التوضيحي لتحميل بيانات العينة (راجع المستخدمون والأدوار).

الخيار ب – تثبيت واجهة سطر الأوامر (CLI).

# 1. تثبيت التبعيات
composer install --no-dev --optimize-autoloader
npm install
npm run build

# 2. تكوين البيئة
cp .env.example .env
php artisan key:generate

# 3. قم بتحرير .env لتعيين معلومات قاعدة البيانات
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD

# 4. إنشاء الجدول والبيانات الأولية
php artisan migrate --seed

# 5. قم بإنشاء مخزن ارتباط رمزي للتحميل
php artisan storage:link

# 6. تكوين ذاكرة التخزين المؤقت للإنتاج
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 7. ضع علامة على التثبيت
echo "Installed" > storage/installed.lock
تكوين خادم الويب: يجب أن يشير جذر المستند إلى public/. يستخدم Apache المدمج .htaccess. راجع Nginx دليل نشر Laravel.

خطوة المعالج 2 - تكوين قاعدة البيانات

عندما يصل المعالج إلى الخطوة 2، ستحتاج إلى إدخال معلومات اتصال MySQL الخاصة بقاعدة البيانات التي تم إنشاؤها في لوحة تحكم الاستضافة. يجب أن تكون قاعدة البيانات موجودة بالفعل (يمكن أن تكون فارغة — الخطوة التالية هي إنشاء الجداول).

مدرسةالافتراضي / مثالملحوظة
Host127.0.0.1ينطبق ذلك على 99% من الاستضافة المشتركة (Hostinger، cPanel، Plesk). ابق كما هو ما لم يقدم المضيف اسم مضيف MySQL الخاص به (قاعدة بيانات مُدارة مثل AWS RDS، وقاعدة بيانات DigitalOcean Managed Database).
Port3306منفذ MySQL القياسي. لا يتم التغيير إلا إذا كان الموفر يستخدم منفذًا مختلفًا (نادرًا).
اسم قاعدة البياناتuXXXXXX_fleethubيتم عرض الاسم الكامل في لوحة تحكم الاستضافة. تحتوي معظم الاستضافة المشتركة على بادئة وفقًا لمعرف المستخدم (على سبيل المثال Hostinger: u287094729_fleethub).
اسم تسجيل الدخولuXXXXXX_fleethubيمتلك حساب MySQL أذونات على قاعدة البيانات المذكورة أعلاه. لا تستخدم root — الاستضافة المشتركة غير مسموح بها.
كلمة المرور(كلمة مرور قاعدة البيانات الخاصة بك)كلمة المرور التي قمت بتعيينها أو نسخها عند إنشاء مستخدم MySQL. تظهر معظم المضيفات مرة واحدة فقط عند إنشائها — استخدم "عرض / إعادة تعيين" إذا لم يتم حفظها.

أين يمكن العثور على معلومات قاعدة البيانات وفقًا لكل نوع من أنواع الاستضافة

  • Hostinger: hPanel → قواعد البيانات → الإدارة → انقر فوق قاعدة البيانات. تعرض صفحة التفاصيل الاسم واسم المستخدم وزر "إظهار كلمة المرور".
  • cPanel: لوحة التحكم ← قواعد بيانات MySQL. قائمة قاعدة البيانات أعلاه، وقائمة المستخدمين أدناه. استخدم "تغيير كلمة المرور" إذا لزم الأمر.
  • Plesk: Plesk → قواعد البيانات → انقر فوق اسم قاعدة البيانات. تعرض صفحة التفاصيل بيانات الاعتماد وتحتوي على زر إعادة تعيين كلمة المرور.
  • DirectAdmin: DirectAdmin ← إدارة MySQL ← انقر على قاعدة البيانات. توجد بيانات الاعتماد وإعادة تعيين كلمة المرور في صفحة التفاصيل.
  • قاعدة بيانات خارجية/ مُدارة: AWS RDS، وقاعدة بيانات DigitalOcean Managed Database، وما إلى ذلك. استخدم اسم المضيف المخصص، والمنفذ (عادةً 3306 ولكن يجب التحقق منه)، واسم قاعدة البيانات، والمستخدم وكلمة المرور من وحدة التحكم السحابية. تأكد من إدراج عنوان IP الخاص بالخادم في القائمة البيضاء في جدار حماية قاعدة البيانات.

الأخطاء الشائعة وكيفية إصلاحها

رسالة خطأالسبب والإصلاح
SQLSTATE[HY000] [1045] Access deniedاسم مستخدم أو كلمة مرور خاطئة، أو ليس لدى المستخدم أذونات في قاعدة البيانات هذه. تدقيق إملائي مزدوج (بما في ذلك بادئة المستخدم على المضيف المشترك). إعادة تعيين كلمة المرور في لوحة تحكم الاستضافة إذا لم تكن متأكدا.
SQLSTATE[HY000] [1049] Unknown databaseاسم قاعدة البيانات خاطئ، أو أنك لم تقم بإنشاء قاعدة البيانات في لوحة التحكم. قم بإنشائه أولاً، ثم أعد إدخال الاسم الدقيق (بما في ذلك البادئة).
SQLSTATE[HY000] [2002] Connection refusedغير قادر على الاتصال بخادم MySQL. تحقق من المضيف والميناء. على المضيفين المشتركين، حاول localhost بدلاً من 127.0.0.1 أو العكس. باستخدام قاعدة البيانات المُدارة، تأكد من إدراج عنوان IP الخاص بالخادم في القائمة البيضاء.
SQLSTATE[42S02] Base table not found: sessionsيحدث عند ضبط SESSION_DRIVER=database أو CACHE_STORE=database على .env قبل وجود الجداول. قم بتحرير .env، وقم بتغيير كليهما إلى file، ثم احفظ، ثم أعد تحميل المعالج. يمكنك تغييره مرة أخرى إلى database بعد اكتمال التثبيت إذا كنت تريد ذلك.
could not find driverملحق PHP pdo_mysql مفقود أو معطل. تمكين في لوحة تحكم الاستضافة على cPanel: MultiPHP INI Editor → الامتدادات أو حدد إصدار PHP → الامتدادات. على Hostinger: hPanel → Advanced → PHP Configuration → علامة التبويب PHP Extensions.
نصيحة: يتم ملء حقول المضيف والمنفذ مسبقًا بالقيم الأكثر شيوعًا (127.0.0.1 و 3306) — ويتم الاحتفاظ بها كما هي في الاستضافة المشتركة. كل ما عليك فعله هو كتابة اسم قاعدة البيانات واسم المستخدم وكلمة المرور. اضغط اختبار & احفظ → للتحقق من الاتصال وانتقل إلى الخطوة 3.

المضيف المحلي (التنمية المحلية)

دليل سريع لتشغيل FleetHub على جهاز الكمبيوتر الخاص بك لأغراض الاختبار أو التطوير قبل النشر إلى الإنتاج. اختر البيئة المناسبة لنظام التشغيل الخاص بك.

موصى به: Laravel Herd هو الخيار الأسرع على نظامي التشغيل macOS وWindows - لا يتطلب Docker، ولا يلزم تكوين Apache/MySQL يدويًا. يعد XAMPP وLaragon خيارين مجانيين جيدين إذا كنت معتادًا على المكدس التقليدي.

الخيار 1 – Laravel Herd (موصى به، لنظامي التشغيل macOS وWindows)

Laravel Herd هي البيئة المحلية الرسمية من فريق Laravel - مجانية، أصلية، بدون Docker. يتضمن PHP 8.2/8.3/8.4 وNginx و(في Herd Pro) MySQL/Redis.

  1. قم بتنزيل وتثبيت Laravel Herd من herd.laravel.com.
  2. قم بتعيين مجلد مشروع FleetHub على ~/Herd/ (macOS) أو %USERPROFILE%\Herd\ (Windows). ينشئ القطيع النطاق .test — على سبيل المثال http://fleethub.test.
  3. افتح Herd → Sites وتأكد من أن إصدار PHP هو 8.2 أو 8.3. انقر بزر الماوس الأيمن على الموقع → Secure لتمكين HTTPS (مطلوب لماسح QR الضوئي).
  4. إنشاء قاعدة بيانات MySQL. باستخدام Herd Pro، انتقل إلى الخدمات → MySQL → فتح في TablePlus. إذا لم يكن لديك Pro، فقم بتثبيت MySQL Community أو استخدم SQLite (DB_CONNECTION=sqlite، touch database/database.sqlite).
  5. انسخ .env.example إلى .env، واملأ معلومات قاعدة البيانات، ثم قم بتشغيل php artisan key:generate في جذر المشروع.
  6. افتح http://fleethub.test/install في متصفحك واتبع المعالج.

الخيار 2 – XAMPP (Windows وmacOS وLinux)

XAMPP حزم Apache وMySQL/MariaDB وPHP. مجاني، عبر منصة. تأكد من اختيار الإصدار PHP 8.2 أو أعلى.

  1. قم بتنزيل XAMPP 8.2+ من Apachefriends.org وتثبيته.
  2. انسخ مشروع FleetHub إلى C:\xampp\htdocs\FleetHub\ (Windows) أو /Applications/XAMPP/htdocs/FleetHub/ (macOS).
  3. افتح XAMPP لوحة التحكم وابدأ Apache وMySQL. إذا كان المنفذ مشغولاً، فانتقل إلى Config →service.conf لتبديل Apache إلى 8080.
  4. انتقل إلى http://localhost/phpmyadminجديد → أنشئ قاعدة بيانات باسم fleethub مع الترتيب utf8mb4.
  5. في مجلد المشروع: انسخ .env.example إلى .env، اضبط DB_DATABASE=fleethub، DB_USERNAME=root، اترك DB_PASSWORD فارغًا (افتراضي XAMPP). تشغيل php artisan key:generate.
  6. قم بالوصول إلى http://localhost/FleetHub/public/install لتشغيل معالج التثبيت.
عنوان URL مضغوط بدون /public/: ينشئ مضيفًا افتراضيًا في C:\xampp\apache\conf\extra\httpd-vhosts.conf يشير DocumentRoot إلى المجلد public/ الخاص بالمشروع، ثم يضيف 127.0.0.1 fleethub.local إلى ملف المضيفين.

الخيار 3 – لاراجون (ويندوز)

Laragon عبارة عن حزمة مكدسة محمولة لنظام التشغيل Windows مصممة لـ Laravel — مضيف افتراضي يتم إنشاؤه تلقائيًا، وعنوان URL مضغوط، وMySQL/MariaDB، وHeidiSQL متضمنة.

  1. قم بتنزيل Laragon Full من laragon.org وتثبيته.
  2. في لاراجون: Menu → PHP → Version — قم بالتبديل إلى PHP 8.2 أو 8.3.
  3. انسخ مشروع FleetHub إلى C:\laragon\www\FleetHub\.
  4. اضغط على بدء الكل. يقوم Laragon بإنشاء مضيف افتراضي خاص به: http://fleethub.test (يشير إلى المجلد public/).
  5. افتح HeidiSQL (مضمن) → إنشاء قاعدة البيانات fleethub. المعلومات الافتراضية: المستخدم root، كلمة المرور فارغة.
  6. قم بتحرير .env باستخدام معلومات قاعدة البيانات، وتشغيل php artisan key:generate، ثم الوصول إلى http://fleethub.test/install.

الخيار 4 - خادم PHP الموجود مسبقًا (لا يلزم وجود خادم ويب)

الخيار الأبسط: يأتي Laravel مع artisan serve، الذي يبدأ خادم تطوير PHP. لا حاجة لـ Apache أو Nginx. الأفضل للاختبار السريع.

# تثبيت التبعيات وتكوينها
cd /path/to/FleetHub
composer install
cp .env.example .env
php artisan key:generate

# قم بتشغيل الترحيل وبذر البيانات الأولية
php artisan migrate --seed

# ابدأ تشغيل خادم التطوير
php artisan serve
# ثم الوصول: http://127.0.0.1:8000/install

المشاكل الشائعة عند تشغيل المضيف المحلي

الماسح الضوئي QR لا يفتح الكاميرا على http://

تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS، مع استثناء واحد: http://localhost وhttp://127.0.0.1 تعتبر سياقات آمنة. إذا قمت بالوصول إلى FleetHub عبر LAN IP (على سبيل المثال http://192.168.1.10)، فسيتم رفض الكاميرا. استخدم localhost للتطوير، أو قم بتمكين HTTPS عبر Herd / mkcert.

تم رفض الإذن على مساحة التخزين (macOS / Linux)

إذا واجهت خطأً عندما يقوم التطبيق بالتسجيل أو التخزين المؤقت، فقم بإصلاح الإذن: chmod -R 775 storage bootstrap/cache. على نظام التشغيل Windows عادة لا تكون هناك حاجة.

المنفذ قيد الاستخدام

إذا كان المنفذ 8000 مشغولًا بالفعل بواسطة تطبيق آخر، فاستخدم منفذًا آخر:

php artisan serve --port=8001

اختبار البريد الإلكتروني محليا

عادةً لا يكون SMTP الحقيقي متاحًا على المضيف المحلي. هناك خياران آمنان: (1) ضع MAIL_MAILER=log في .env — يتم تسجيل الدخول إلى البريد الإلكتروني storage/logs/laravel.log بدلاً من إرساله؛ أو (2) استخدم Mailtrap / MailHog لالتقاط رسائل البريد الإلكتروني الصادرة في صندوق بريد وارد مزيف.

MAIL_MAILER=log
# يتم تسجيل جميع رسائل البريد الإلكتروني في Storage/logs/laravel.log

أصول الواجهة الأمامية (Vite / Tailwind)

الواجهة الأمامية لـ FleetHub's Vue/Tailwind مدمجة بالفعل في الحزمة. إذا قمت بتحرير مكون Vue أو تكوين Tailwind، فستحتاج إلى Node.js 18+:

npm install
npm run dev    # إعادة التحميل السريع عند التطوير
npm run build  # بناء الإنتاج (التشغيل قبل النشر)

النشر على Hostinger Single (استضافة مشتركة)

يوصى بهذا للأشخاص الذين ليس لديهم VPS أو خبرة فنية. FleetHub متوافق تمامًا مع أرخص خطة Hostinger Single Web Hosting (~ 2.99 دولارًا أمريكيًا في الشهر). لا حاجة إلى SSH أو Composer أو سطر الأوامر - يأتي Single مع وظائف cron الأصلية وPHP 8.3 وSSL مجانًا.

تم اختباره على: خطط Hostinger Single، Premium، Business (PHP 8.2+، MySQL 5.7+، وظائف Cron الأصلية متاحة في جميع المستويات).

الخطوة 1 – إعداد الاستضافة

  1. قم بتسجيل الدخول إلى Hostinger hPanel.
  2. انتقل إلى Hosting → Management لاسم المجال الخاص بك.
  3. اضبط إصدار PHP على 8.2 أو 8.3 عبر Advanced → PHP Configuration.
  4. تأكد من تمكين ملحقات PHP هذه (عادةً بشكل افتراضي):
    • OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo

الخطوة 2 - إنشاء قاعدة بيانات MySQL

  1. في hPanel، انتقل إلى قواعد البيانات → قواعد بيانات MySQL.
  2. اضغط على إنشاء قاعدة بيانات جديدة.
  3. سجل هذه القيم الثلاث:
    • اسم قاعدة البيانات — على سبيل المثال u123_FleetHub
    • اسم تسجيل الدخول — على سبيل المثال u123_admin
    • كلمة المرور — تم إنشاؤها ذاتيًا ويتم الاحتفاظ بها بعناية

الخطوة 3 - تحميل الملفات

  1. انتقل إلى ملف → مدير الملفات في hPanel.
  2. انتقل إلى public_html/ (هذا هو جذر اسم المجال).
  3. احذف أي ملفات index.html أو default.php افتراضية في هذا المجلد.
  4. انقر فوق تحميل الملفات وقم بتنزيل الكل source.zip من حزمة التثبيت.
    أو قم بتنزيل محتويات المجلد /source/ مباشرة عبر FTP إذا كنت تريد.
  5. في حالة تحميل ملف ZIP، انقر بزر الماوس الأيمن → استخراج. بعد فك الضغط يجب أن تكون جميع الملفات في الجذر public_html/.
  6. تأكيد public_html/ يحتوي على: app/، public/، vendor/، .htaccess، index.php (في public/.env، إلخ.
هام: تأكد من وجود الملف .htaccess في الجذر public_html/. أنه يحتوي على قواعد إعادة كتابة URL. إذا كان مدير الملفات يخفي الملفات المخفية، فانقر فوق الإعدادات → إظهار الملفات المخفية.

الخطوة 4 - قم بتشغيل المثبت

  1. افتح متصفحك وانتقل إلى https://yourdomain.com/install.
  2. سترى مثبت FleetHub.
  3. الخطوة 1: المتطلبات — يجب أن تمر جميع العناصر (باللون الأخضر). إذا كانت هناك أخطاء، فاتصل بدعم Hostinger لتمكين ملحق PHP المفقود.
  4. الخطوة 2: قاعدة البيانات — أدخل المعلومات من الخطوة 2 أعلاه:
    • يستضيف: localhost
    • ميناء: 3306
    • قاعدة البيانات: u123_FleetHub
    • اسم المستخدم: u123_admin
    • كلمة المرور: (تم إنشاؤها بواسطة Hostinger)
  5. الخطوة 3: الترحيل — انقر على "تشغيل عمليات الترحيل والبذور". يستغرق ~ 10 ثانية. لا تقم بالتحديث.
  6. الخطوة 4: المسؤول — إنشاء حساب مسؤول. استخدم كلمات مرور قوية.
  7. تم! — سترى عنوان URL لـ Cron (حفظ!) وزر تسجيل الدخول.

الخطوة 5 - إعداد تنبيهات البريد الإلكتروني التلقائية عبر Hostinger Cron

يستخدم FleetHub برنامج جدولة Laravel: تنبيهات الامتثال، وتذكيرات الصيانة، والطلبات المتأخرة، ورخص القيادة، وتحديثات قيمة السيارة، وإعادة حساب النتيجة الصحية للأسطول. قم بتكوين a cron على hPanel.

  1. في hPanel، انتقل إلى متقدم → Cron Jobs.
  2. انقر على إنشاء وظيفة كرون.
  3. حدد النوع: Custom (وليس "PHP" — لأنه يلزم تمرير المعلمات).
  4. أدخل الأمر التالي (استبدل uXXXXXX باسم مستخدم Hostinger الخاص بك):
    /usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
    نصيحة: افتح مدير الملفات، وابحث عن الملف artisan (جذر المشروع)، وانقر بزر الماوس الأيمن على → خصائص لنسخ المسار الكامل.
  5. اضبط الجدول على كل دقيقة — جميع الحقول الخمسة (دقيقة، ساعة، يوم، شهر، يوم من الأسبوع) مضبوطة على *.
  6. اضغط على حفظ.

سيرسل FleetHub تذكيرات بالمطالبات المتأخرة وتنبيهات الصيانة والامتثال والترخيص وتحديثات الاستهلاك وعمليات إعادة حساب النتيجة الصحية للأسطول تلقائيًا.

تم ضبط جذر المستند على public_html/public/? لا توجد مشكلة — كود Laravel لا يزال في الجذر public_html/ لذلك يبقى مسار cron /home/uXXXX/public_html/artisan (لا تضيف /public/).
خطة احتياطية للمضيفين بدون cron: إذا كنت لا تستخدم Hostinger أو لم يكن لدى مزودك وظائف cron، فإن FleetHub يوفر أيضًا عنوان URL لتنشيط خطاف الويب.
  1. مسؤول تسجيل الدخول → الإعدادات → علامة تبويب النظام → انسخ عنوان URL لـ Cron.
  2. قم بالتسجيل مجانًا على cron-job.org.
  3. أنشئ cronjob، والصق عنوان URL، واضبط كل 15 دقيقة، واحفظ.

الخطوة 6 - تكوين البريد الإلكتروني (SMTP)

يوفر Hostinger حسابات بريد إلكتروني مع كل خطة. بالنسبة لإشعارات FleetHub:

  1. في hPanel، انتقل إلى البريد الإلكتروني → حسابات البريد الإلكتروني وقم بإنشاء حساب (على سبيل المثال noreply@yourdomain.com).
  2. تحرير الملف .env في public_html/ عبر مدير الملفات:
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.hostinger.com
    MAIL_PORT=587
    MAIL_USERNAME=noreply@yourdomain.com
    MAIL_PASSWORD=your_email_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=noreply@yourdomain.com
    MAIL_FROM_NAME="Your Company Name"
  3. احفظ الملف.
  4. قم بتسجيل الدخول إلى FleetHub → الإعدادات → علامة تبويب البريد الإلكتروني → إرسال بريد إلكتروني تجريبي. إذا حصلت عليه، لقد انتهيت.
حد SMTP على الخطة الفردية: يسمح Hostinger Single بإرسال ما يقرب من 100 رسالة بريد إلكتروني في الساعة. بالنسبة لعمليات النشر الأكبر، استخدم موفرًا مخصصًا مثل SendGrid أو Mailgun أو Postmark (تتوفر خطط مجانية).

المشاكل الشائعة في Hostinger Single

"500 خطأ داخلي في الخادم" بعد التحميل

  • تحقق من وجود .htaccess في الجذر public_html/ ويحتوي على قواعد إعادة الكتابة.
  • تأكد من تعيين إصدار PHP على 8.2 أو 8.3 في hPanel.
  • تحقق من storage/logs/laravel.log عبر مدير الملفات لرؤية الخطأ الفعلي.

"تم رفض الإذن" عند التحميل

عادةً ما يقوم Hostinger بتعيين الأذونات الصحيحة من تلقاء نفسه، ولكن إذا لم يكن الأمر كذلك:

  • انقر بزر الماوس الأيمن على storage/ في مدير الملفات → الأذونات → اضبط على 755 بشكل متكرر.
  • نفس الشيء مع bootstrap/cache/.

فشل الماسح الضوئي QR في فتح الكاميرا

تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS. يقدم Hostinger خدمة SSL مجانية عبر Let's Encrypt — قم بتمكينها في hPanel ضمن SSL → Manage.

لا يتم إرسال رسائل البريد الإلكتروني المجدولة

  • في hPanel → Cron Jobs → حدد العمود آخر تشغيل في إدخال cron. إذا كان فارغًا، فهذا يعني أن cron لا يعمل - تأكد من صحة المسار الحرفي.
  • اختبار الأمر يدويًا: افتح Terminal في hPanel (إذا كان متاحًا) وقم بتشغيل أمر cron. إذا كان هناك خطأ، فستشير رسالة الخطأ بوضوح إلى المشكلة (إصدار PHP خاطئ، مسار خاطئ، وما إلى ذلك).
  • تأكد من تكوين SMTP بشكل صحيح (الإعدادات → البريد الإلكتروني → إرسال الاختبار).
  • تحقق من storage/logs/laravel.log بحثًا عن أخطاء الجدولة.

أداء بطيء

يشارك Hostinger Single وحدة المعالجة المركزية/ذاكرة الوصول العشوائي. إذا كانت مجموعتك تضم أكثر من 20 شخصًا، فكر في ما يلي:

  • الترقية إلى Premium (~ 3.99 دولارًا أمريكيًا شهريًا) — خوادم أسرع وموارد أكثر وقواعد بيانات أكثر.
  • أو Business (~ 5.99 دولارات شهريًا) — موارد مخصصة ونسخ احتياطية يومية وبيئة مرحلية.

النشر على cPanel (الاستضافة المشتركة)

هذا الدليل مخصص للاستضافة المشتركة cPanel القياسية (Namecheap وBluehost وGoDaddy ومعظم المضيفين الرخيصين). يحتوي FleetHub بالفعل على vendor/ وبناء الواجهة الأمامية - لا حاجة إلى Composer أو npm أو Terminal على الخادم. إذا لم يكن لدى cPanel محطة طرفية، فاستخدم SSH Access أو الطرق الموجودة في مدير الملفات أدناه.

تم الاختبار: cPanel 110+ مع PHP 8.2/8.3 وMySQL 5.7+/MariaDB 10.3+ وApache وCron Jobs. عادة ما يكون الدليل الرئيسي هو /home/CPANELUSER/ — راجع الشريط الجانبي لـ cPanel في معلومات عامة.

الخطوة 1 - تعيين إصدار PHP وملحقاته

  1. قم بتسجيل الدخول إلى cPanel.
  2. افتح MultiPHP Manager (أو حدد إصدار PHP) وحدد PHP 8.2 أو 8.3 للمجال.
  3. افتح MultiPHP INI Editor أو PHP Extensions وتأكد من تمكين الامتدادات التالية:
    • OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
  4. إذا كان الامتداد مفقودًا، فقم بتمكينه من القائمة أو اتصل بدعم المضيف.

الخطوة 2 - تمكين SSL (HTTPS)

  1. انتقل إلى SSL/TLS Status (أو Let's Encrypt SSL / AutoSSL).
  2. قم بتشغيل AutoSSL أو تثبيت شهادة مجانية للمجال.
  3. HTTPS مطلوب لماسح QR الضوئي لفتح كاميرا المتصفح.
نصيحة: انتظر بضع دقائق بعد تمكين SSL، ثم افتح https://yourdomain.com وتحقق من أيقونة القفل.

الخطوة 3 - إنشاء قاعدة بيانات MySQL والمستخدم

  1. افتح إدارة قواعد البيانات الخاصة بي (في قسم قواعد البيانات).
  2. في إنشاء قاعدة بيانات جديدة، أدخل اسمًا (على سبيل المثال fleethub) ثم قم بالإنشاء. تضيف لوحة التحكم cPanel تلقائيًا بادئة — الاسم الكامل في النموذج cpaneluser_fleethub.
  3. في MySQL Users، أنشئ مستخدمًا بكلمة مرور قوية. انسخ اسم المستخدم مع البادئة.
  4. في إضافة مستخدم إلى قاعدة البيانات، حدد المستخدم وقاعدة البيانات، أضف، ثم امنح جميع الامتيازات. من السهل تفويت هذه الخطوة — سيؤدي تفويتها إلى حدوث خطأ Access denied (1045).
  5. سجل بالضبط 3 قيم معروضة في cPanel:
    • اسم قاعدة البيانات — على سبيل المثال u123_FleetHub
    • اسم تسجيل الدخول — على سبيل المثال u123_admin
    • كلمة المرور — تم إنشاؤها ذاتيًا ويتم الاحتفاظ بها بعناية

الخطوة 4 - تحميل الملفات

  1. افتح مدير الملفات، انتقل إلى public_html/ (جذر المستند).
  2. قم بتشغيل الإعدادات → إظهار الملفات المخفية لرؤية .htaccess و.env.
  3. احذف الافتراضي index.html في public_html/ إذا كان موجودًا.
  4. قم بتحميل source.zip و استخراج، أو تحميل محتويات المجلد /source/ عبر FTP.
  5. بعد فك الضغط، يجب أن يحتوي public_html/ على app/ وpublic/ وvendor/ و.htaccess الجذر وartisan في نفس المستوى.
هام: .htaccess يقوم الجذر بإعادة توجيه جميع الطلبات إلى public/ — عادةً ما يحتاج إلى تغيير جذر المستند يدويًا.

الخطوة 5 - قم بإعداد .env قبل تشغيل برنامج التثبيت

أكمل هذه الخطوة قبل عند الفتح /install. يحتاج Laravel إلى APP_KEY ليكون صالحًا وتكوين قاعدة البيانات صحيحًا في .env.

  1. في مدير الملفات، انسخ .env.example إلى .env (نفس المجلد مثل artisan).
  2. تحرير .env وتعيين الحد الأدنى:
    APP_NAME=FleetHub
    APP_ENV=production
    APP_DEBUG=false
    APP_URL=https://yourdomain.com
    
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=cpaneluser_fleethub
    DB_USERNAME=cpaneluser_admin
    DB_PASSWORD="your_password"
    
    SESSION_DRIVER=file
    CACHE_STORE=file
  3. اضبط DB_CONNECTION=mysql.env.example الافتراضي لاستخدام SQLite؛ الاستضافة المشتركة تتطلب MySQL.
  4. ضع SESSION_DRIVER=file و CACHE_STORE=file قبل الترحيل الأول (تجنب أخطاء جدول الجلسات).
  5. ضع DB_PASSWORD بين علامتي اقتباس إذا كانت كلمة المرور تحتوي على أحرف خاصة (#، $، !، إلخ).

إنشاء APP_KEY (لا حاجة للمحطة الطرفية)

لا تتضمن العديد من خطط cPanel محطة ويب. استخدم إحدى الطرق التالية:

  • SSH Access (cPanel → Security → SSH Access): اتصال PuTTY/PowerShell، قم بتشغيل cd ~/public_html && php artisan key:generate.
  • مدير الملفات — أنشئ public/genkey.php مؤقتًا، وافتح المتصفح، وانسخ النتائج إلى APP_KEY=، ثم احذف الملف على الفور.
    <?php
    echo 'base64:' . base64_encode(random_bytes(32));
  • على جهاز الكمبيوتر — إذا كان هناك PHP محلي: php -r "echo 'base64:'.base64_encode(random_bytes(32));" ثم الصق .env.
الأمان: احذف genkey.php مباشرة بعد نسخ المفتاح. لا تترك البرامج النصية المساعدة على الإنتاج.
  • قم بتعيين الأذونات storage/ و bootstrap/cache/ إلى 755 (متكرر) إذا أبلغ المثبت عن خطأ في الكتابة.

الخطوة 6 - قم بتشغيل مثبت الويب

  1. افتح https://yourdomain.com/install في المتصفح.
  2. الخطوة 1: المتطلبات — يجب أن ينجح الجميع (أخضر). قم بتصحيح امتداد PHP في الخطوة 1 إذا كان مفقودًا.
  3. الخطوة 2: قاعدة البيانات — أدخل الاسم بالبادئة من الخطوة 3:
    • يستضيف: 127.0.0.1 or localhost
    • ميناء: 3306
    • قاعدة البيانات: cpaneluser_fleethub
    • اسم المستخدم: cpaneluser_admin
    • كلمة المرور: (your MySQL password)
  4. الخطوة 3: الترحيل — انقر على "تشغيل عمليات الترحيل والبذور". ~10 ثواني. لا تقم بتحديث الصفحة.
  5. قم بإلغاء تحديد تضمين البيانات التجريبية في حالة تثبيت الإنتاج النظيف.
  6. الخطوة 4: المسؤول — إنشاء حساب مسؤول.
  7. تم! — احفظ عنوان URL لـ Cron في الشاشة الأخيرة.

الخطوة 7 - تكوين وظائف Cron لتنبيهات البريد الإلكتروني

يحتاج FleetHub إلى تشغيل cron كل دقيقة حتى يتمكن Laravel من إرسال تنبيهات الامتثال وتذكيرات الصيانة والطلبات المتأخرة ورسائل البريد الإلكتروني المجدولة الأخرى.

  1. في cPanel، انتقل إلى متقدم → Cron Jobs.
  2. في إضافة وظيفة Cron جديدة، اضبط الجدول الزمني على كل دقيقة (* * * * *).
  3. أدخل الأمر (استبدل CPANELUSER باسم مستخدم cPanel في المعلومات العامة):
    /usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
    نصيحة: مسار PHP يمكن أن يكون /usr/local/bin/php أو /usr/bin/php. المسار الحرفي عادة ما يكون /home/CPANELUSER/public_html/artisan.
  4. انقر على إضافة وظيفة Cron جديدة للحفظ.
جذر المستند هو public_html/public/? لا يزال Cron يشير إلى /home/CPANELUSER/public_html/artisan — لا أكثر /public/.
لا يوجد كرون؟ استخدم عنوان URL لـ Cron في التطبيق:
  1. قم بتسجيل الدخول كمشرف → الإعدادات → النظام → انسخ عنوان URL لـ Cron.
  2. قم بالتسجيل مجانًا على cron-job.org.
  3. قم بإنشاء مهمة تستدعي عنوان URL هذا كل 15 دقيقة.

الخطوة 8 - تكوين البريد الإلكتروني (SMTP)

قم بإنشاء حساب بريد إلكتروني cPanel للإشعارات الصادرة:

  1. انتقل إلى حسابات البريد الإلكتروني → إنشاء على سبيل المثال. noreply@yourdomain.com.
  2. تحرير .env في مدير الملفات:
    MAIL_MAILER=smtp
    MAIL_HOST=mail.yourdomain.com
    MAIL_PORT=587
    MAIL_USERNAME=noreply@yourdomain.com
    MAIL_PASSWORD=your_email_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=noreply@yourdomain.com
    MAIL_FROM_NAME="Your Company Name"
  3. احفظ، ثم في FleetHub: الإعدادات → البريد الإلكتروني → إرسال بريد إلكتروني تجريبي.
حد الاستضافة المشتركة عبر SMTP: يحد العديد من مضيفي cPanel من 100 إلى 500 بريد إلكتروني في الساعة تقريبًا. يجب على الفرق الكبيرة استخدام SendGrid أو Mailgun أو Postmark.

المشاكل الشائعة في cPanel

"تم رفض الوصول للمستخدم" (SQLSTATE 1045)

  • انسخ اسم قاعدة البيانات واسم المستخدم بالضبط من cPanel — بما في ذلك البادئة.
  • قم بتأكيد إضافة مستخدم إلى قاعدة البيانات مع كافة الامتيازات.
  • أعد تعيين كلمة مرور MySQL في cPanel وقم بالتحديث .env — استخدم الأقواس حول DB_PASSWORD إذا كانت هناك أحرف خاصة.

يفشل الترحيل بعد اجتياز خطوة قاعدة البيانات

  • يختبر المعالج من النموذج، لكن يقرأ الترحيل .env. تأكد من تطابقها.
  • احذف bootstrap/cache/config.php إذا كان هناك واحد، ثم حاول مرة أخرى.
  • تأكد من DB_CONNECTION=mysql في .env (ليس sqlite).

"القيمة الافتراضية غير صالحة" عند الترحيل (1067)

يمكن للوضع الصارم لـ MySQL على الاستضافة المشتركة أن يرفض القيم الافتراضية لبعض الأعمدة. راجع storage/logs/laravel.log وتأكد من PHP 8.2+ بجميع الامتدادات.

"500 خطأ داخلي في الخادم" بعد التحميل

  • تحقق من النسخة الأصلية .htaccess وPHP 8.2+.
  • راجع storage/logs/laravel.log لمعرفة الخطأ الفعلي.
  • تأكد من تعيين APP_KEY في .env — المفتاح الفارغ يسبب الخطأ 500.

لا توجد محطة في cPanel

عادي على العديد من الحزم المشتركة. استخدم SSH Access (في حالة التمكين)، genkey.php مؤقتًا في الخطوة 5، أو قم بإنشاء مفتاح على جهاز الكمبيوتر المحلي.

الماسح الضوئي QR لا يفتح الكاميرا

قم بتمكين SSL عبر SSL/TLS Status → AutoSSL والوصول باستخدام https://.

إعدادات

ملف .env

قفليصفعلى سبيل المثال
APP_NAMEيتم عرض اسم التطبيق في شريط العنوانFleetHub
APP_URLعنوان URL العام للتثبيتhttps://fleet.example.com
APP_DEBUGتعيين false على الإنتاجfalse
DB_*معلومات اتصال قاعدة البياناتmysql, 127.0.0.1, 3306, ...
MAIL_MAILERسائق البريدsmtp, log, mailgun
MAIL_HOSTاسم مضيف خادم SMTPsmtp.gmail.com
MAIL_PORTمنفذ SMTP587
MAIL_USERNAMEاسم المستخدم SMTPyour@email.com
MAIL_PASSWORDكلمة مرور SMTP أو رمز التطبيق**********
MAIL_FROM_ADDRESSالافتراضي من العنوانnoreply@example.com

تثبيت في التطبيق

يتم تكوين معظم الخيارات غير الحساسة في المسؤول → الإعدادات:

  • عام: اسم الشركة/البريد الإلكتروني/الهاتف، العلامة التجارية
  • أسطول المركبات: بادئة رمز المركبة، قالب قائمة التحقق من التسليم، الصيانة الافتراضية، وضع صفحة المركبات العامة
  • البريد الإلكتروني: أرسل بريدًا إلكترونيًا تجريبيًا لاختبار SMTP
  • الإشعارات: تمكين/تعطيل تنبيهات الامتثال والصيانة ومتطلبات السيارة والترخيص
  • متعدد اللغات: المنطقة الزمنية، تنسيق التاريخ، العملة - ينطبق في جميع أنحاء التطبيق
  • الامتثال: إدارة الإعدادات المسبقة لنوع الامتثال (التأمين، التسجيل، ضريبة الطريق...)
  • Brand: اسم التطبيق وشعاره - تحديث معلومات تسجيل الدخول والتذييل وعنوان علامة التبويب
  • المظهر: تخصيص لون العلامة التجارية وحالتها ونصها للضوء/الداكن - راجع دليل تغيير العلامة التجارية في الأسئلة الشائعة

دعم متعدد اللغات

يتوفر FleetHub بـ 11 لغة، بما في ذلك العربية (RTL) والهندية. يقوم المستخدمون بتغيير اللغة عبر القائمة المنسدلة للأعلام في الزاوية اليمنى العليا.

اللغات المتاحة

شفرةلغةاتجاه
enEnglish (default)LTR
viTiếng ViệtLTR
esEspañolLTR
frFrançaisLTR
deDeutschLTR
zh简体中文LTR
ja日本語LTR
pt-BRPortuguês (Brasil)LTR
ruРусскийLTR
arالعربيةRTL
hiहिन्दीLTR

كيفية تغيير اللغة

  1. انقر على أيقونة العلم في الزاوية اليمنى العليا لفتح القائمة المنسدلة.
  2. اختر اللغة من القائمة.
  3. سيتم إعادة تحميل الصفحة؛ يتم ترحيل كافة تسميات واجهة المستخدم والتواريخ وتنسيقات العملات.
  4. يتم حفظ الاختيارات في حساب المستخدم وفي ملفات تعريف الارتباط (سنة واحدة).
لا تفتح ملف .html الخاص بالتطبيق مباشرةً. FleetHub هو تطبيق من جانب الخادم Laravel + Vue - تغيير لغة الإرسال POST إلى /locale/{code}، يعمل فقط عندما يكون هناك خادم PHP قيد التشغيل. الوصول دائمًا عبر المجال الحقيقي (الإنتاج) أو http://localhost:8000 (المطور باستخدام php artisan serve). ملفات التوثيق مثل هذا الملف مستقلة تمامًا ويمكن فتحها مباشرةً.

إضافة لغة مخصصة (المسؤول)

انتقل إلى الإدارة → الترجمات (المسؤول لديه إذن إدارة الترجمات):

  • انقر فوق "إضافة لغة" - أدخل الرمز (على سبيل المثال mk للغة المقدونية)، واسم العرض، واسم اللغة، واسم ملف علم SVG، والاتجاه (LTR/RTL)، واللغة الأصلية لنسخ الترجمة.
  • تظهر اللغة الجديدة في محوّل اللغة وقائمة اللغات الافتراضية في الإعدادات → التعريب.
  • تتجاوز ترجمة قاعدة البيانات الملف تلقائيًا في lang/{code}/.

محرر الترجمة

يسرد المحرر جميع مفاتيح الترجمة حسب الملف (الأصول، التنقل، الإعدادات...). يعرض كل مفتاح الملف الأساسي ويتجاوز قاعدة البيانات (إن وجدت).

  • قم بالتصفية حسب اللغة أو مجموعة الترجمة أو البحث النصي.
  • انقر على القيمة لتحريرها في السطر؛ احفظ في قاعدة البيانات الآن.
  • إعادة تعيين المفتاح للعودة إلى الملف الأساسي.
  • يمكن تحرير اللغة المضمنة (en، vi، es...) ؛ لغة مخصصة بالكامل من قاعدة البيانات.
  • يمكن فقط للمستخدمين الذين لديهم إذن إدارة الترجمات الوصول إلى هذه الصفحة.

استيراد / تصدير CSV

  • تصدير — تنزيل جميع مفاتيح اللغة بتنسيق CSV (group,key,value).
  • Import — تحميل ملف CSV في نفس العمود؛ تم تحديث تجاوز قاعدة البيانات، وإضافة مفتاح جديد.

اللغة الافتراضية وفقا للمستخدم

كل مستخدم لديه عمود locale. يتم إرسال رسائل الإشعارات تلقائيًا وفقًا للغة المستلم بفضل عقد Laravel HasLocalePreference.

اللغة الافتراضية للموقع موجودة في الإعدادات → الترجمة → اللغة الافتراضية. يتجاوز المستخدمون الفرديون عبر محوّل اللغة الموجود في الرأس.

قائمة الميزات (15 مجموعة وحدات)

إدارة المركبات

  • رمز السيارة الذي تم إنشاؤه تلقائيًا (بادئة VH)
  • لوحة الترخيص، VIN، الطراز، نوع الوقود
  • إنشاء رموز QR وطباعتها بكميات كبيرة
  • الحالة، الحالة، تتبع العداد
  • استيراد/تصدير Excel بكميات كبيرة
  • استنساخ سيارة عند شراء العديد من السيارات المماثلة
  • صفحة تفاصيل مكونة من 7 علامات تبويب مع مخطط زمني لدورة الحياة

المتطلبات والتسليم

  • طلب العملية → الموافقة → الدفع
  • التقويم والكشف عن التقويم المكرر
  • مخطط الضرر ثنائي الأبعاد + التوقيع الرقمي
  • تصدير تقرير تسليم PDF

صيانة

  • جدولة الوقاية والتصحيح
  • الجدول الزمني حسب مستوى الأولوية
  • قم بجدولة الصيانة الوقائية التالية بنفسك
  • تتبع النفقات → مزامنة النفقات التلقائية
  • تذكير بالبريد الإلكتروني قبل الموعد المحدد

الامتثال والوقود

  • قسم الامتثال (التأمين والتسجيل والترخيص)
  • مراقبة انتهاء رخصة القيادة
  • سجل الوقود وتحميل الإيصالات وضغط الصور
  • التحقق من الاحتيال على مدار الساعة

التكلفة الإجمالية للملكية والإهلاك

  • 3 طرق للإهلاك متضمنة وحدات الإنتاج (كم)
  • جدول التكلفة الإجمالية للملكية (TCO) مع مؤشر التكلفة/كم
  • مزامنة تكاليف الوقود والصيانة تلقائيا
  • الرسم البياني منحنى الاستهلاك

تقرير

  • 7 أنواع من تقارير الأسطول
  • تصدير إكسل + بي دي إف
  • لوحة القيادة ApexCharts
  • تصفية حسب الفترة الزمنية

تشغيل أسطول المركبات

  • النتيجة الصحية للأسطول، يتم إعادة حسابها يوميًا
  • إدارة برامج التشغيل، ومزامنة رخص القيادة
  • تكاليف المركبات (التأمين، رسوم المرور، مواقف السيارات ...)
  • مسح QR سريع للسائقين (الوقود، العداد، الحوادث)

متعدد اللغات

  • 11 لغة لواجهة المستخدم + لغة مخصصة
  • محرر الترجمة والبحث والتحرير المضمن
  • استيراد/تصدير ملف CSV لتحديثات الدُفعات
  • تنطبق المنطقة الزمنية والعملة في جميع أنحاء التطبيق

العلامة التجارية والمظهر

  • عنوان علامة تبويب المتصفح من الإعدادات → العلامة التجارية → اسم التطبيق
  • تخصيص اللون في الإعدادات → المظهر (فاتح وداكن)

المستخدمون والأدوار

لدى FleetHub 5 أدوار متاحة لعمليات الأسطول الداخلية:

دورقوة
مسؤلالتحكم الكامل في النظام - المستخدمون، والأقسام، والإعدادات، وسجلات التدقيق، وخطافات الويب، والترجمات
إدارة أسطول المركباتإدارة المركبات والسائقين والطلبات وعمليات التسليم والصيانة وسجلات الوقود؛ الموافقة على الطلب؛ تقرير كامل
محاسبجداول التكلفة الإجمالية للملكية، والتكاليف، والإهلاك، وتقارير الامتثال - التركيز المالي، والعرض في المقام الأول
رئيس القسمتصفح طلبات غرفتك، وعرض المركبات، وتقديم تقرير إلى الإدارات
سائقعرض المركبات المعلقة، وتسجيل سجلات الوقود، ومسح QR بسرعة، وعرض طلباتك

الحساب التجريبي (كلمة المرور: password): admin@fleethub.test, manager@fleethub.test, dept@fleethub.test, accountant@fleethub.test, driver@fleethub.test. تمكين البيانات التجريبية عند التثبيت أو البذر. أذونات Spatie - يمكن للمسؤولين ضبط كل إذن.

إدارة المركبات

إنشاء سيارة جديدة

  1. انتقل إلى المركبات → المركبات الجديدة.
  2. املأ رقم لوحة الترخيص والطراز والسنة ونوع الوقود والفئة والقسم.
  3. أضف تاريخ الشراء والسعر (مطلوب للإهلاك والتكلفة الإجمالية للملكية).
  4. تحميل الصور (ملفات متعددة، بحد أقصى 5 ميغابايت لكل منها - يتم ضغطها تلقائيًا على الهاتف المحمول).
  5. حفظ - يتم إنشاء رمز السيارة ورمز الاستجابة السريعة تلقائيًا.

تنسيق رمز السيارة

الافتراضي: {PREFIX}-{YEAR}-{NNNN}، على سبيل المثال VH-2026-0001. قم بالتكوين في الإعدادات → الأسطول → بادئة رمز المركبة.

استيراد بالجملة

  1. اضغط على استيراد في صفحة المركبات.
  2. تحميل قوالب اكسل.
  3. املأ البيانات — الأعمدة المطلوبة: license_plate، make، model، category_name.
  4. تحميل الملفات.

رمز الاستجابة السريعة والمسح السريع

تحتوي كل مركبة تلقائيًا على رمز الاستجابة السريعة عند إنشائها. قم بالمسح لفتح صفحة المركبات العامة أو قم بإجراءات سريعة في التطبيق للسائقين الذين قاموا بتسجيل الدخول.

طباعة ملصقات QR

  • ملصق واحد: انقر فوق رمز الطابعة الموجود على السيارة.
  • طباعة الدفعات: حدد مركبات متعددة → طباعة ملصقات QR. مقاس A4، 2 ملصق/صف.

المسح في التطبيق

انقر على مسح QR في صفحة المركبة. السماح بالكاميرات. يعمل على المتصفحات الحديثة التي تستخدم HTTPS أو المضيف المحلي.

صفحة السيارات العامة

تحتوي كل مركبة على عنوان URL عام على /v/{vehicle_code} — وهو مفيد للتعرف السريع دون الحاجة إلى تسجيل الدخول.

  • قم بالتكوين في الإعدادات → الأسطول → صفحة المركبات العامة: عام، يتطلب تسجيل الدخول أو إيقاف التشغيل.
  • يعرض وضع الضيف المعلومات الأساسية فقط (لوحة الترخيص، الطراز/الطراز). الإجراء السريع يتطلب تسجيل الدخول.
  • بعد تغيير APP_URL، اضغط على إعادة إنشاء جميع رموز QR في الإعدادات.

إجراء

اطلب سيارة

يرسل الموظف طلبًا لاستخدام مركبة. البث: requested → approved → returned (أو rejected). مدير الأسطول أو رئيس قسم الموافقة. يعرض التقويم حجوزات المركبات للأسطول بأكمله. أعد السيارة المتأخرة وأرسل بريدًا إلكترونيًا تحذيريًا.

تسليم السيارة

  1. عند الموافقة على الطلب، قم بإنشاء خروج من التسليم قبل أن يلتقط السائق المركبة.
  2. سجل الساعة، وأكمل قائمة المراجعة، وحدد الضرر على المخططات ثنائية الأبعاد، وأرفق الصور والتوقيعات الرقمية.
  3. قم بحفظ وتنزيل تقرير تسليم PDF لسجلاتك.
  4. عند إعادة السيارة، قم بإنشاء تسليم — مقارنة الحالة، تحديث العداد، حذف مهمة السائق.
  5. إكمال تسليم الاستلام يُعلّم الطلب كمُعاد ويضبط حالة المركبة إلى متاحة.

الاستهلاك والتكلفة الإجمالية للملكية

يقوم FleetHub بحساب استهلاك السيارة باستخدام إحدى الطرق الثلاث. يتم تضمين الإهلاك في جدول التكلفة الإجمالية للملكية بالإضافة إلى سجلات الوقود والمصروفات.

طريقةوصفةفي حالة الاستخدام
خط مستقيم(Cost - Salvage) / Useful Lifeالأكثر شعبية؛ تنخفض بالتساوي كل عام
التوازن يتناقص تدريجيا2 / Useful Life × Book Valueالاستهلاك السريع. الأغراض الضريبية
وحدة الإنتاج(كم هذه الفترة / إجمالي الكيلو مترات المتوقعة) × (سعر الشراء − قيمة التصفية)توقعت المركبة إجمالي عدد الكيلومترات (حسب الساعة)

الافتراضي يرث من فئة السيارة. current_value يقوم بتحديث نفسه شهريًا عبر fleethub:update-vehicle-values. التكلفة الإجمالية للملكية = سعر الشراء + إجمالي تكلفة السيارة في الفترة المحددة.

الحقول المخصصة

المشرف → الحقول المخصصة تسمح بإضافة خصائص غير محدودة للمركبات:

  • النوع: نص، رقم، تاريخ، تحديد، منطقة نص، ملف، خانة اختيار
  • النطاق: ينطبق على جميع الفئات أو فئات محددة من المركبات
  • الترتيب: مقبض السحب والإسقاط
  • يتم تحديد الحقل الإلزامي عند حفظ السيارة

تقرير

سبعة تقارير متكاملة للأسطول، يمكن الوصول إليها من قائمة التقارير:

  1. إجمالي التكلفة الإجمالية للملكية — إجمالي تكلفة ملكية السيارة والأسطول بأكمله
  2. جدول الإهلاك — الإهلاك حسب المركبة، مع تصدير الملف
  3. تكاليف الصيانة — الإنفاق حسب المركبة والنوع والشهر
  4. استهلاك الوقود والتكلفة — الاتجاه كم/لتر، وضع علامات غير منتظمة
  5. استخدام طلب المركبة — معدل حجز المركبة بمرور الوقت
  6. انتهاء الامتثال — وثائق المركبة ورخصة القيادة على وشك الانتهاء
  7. تخصيص المركبات حسب القسم — المركبات والاستخدام حسب القسم

جميع التقارير تدعم تصدير Excel و PDF عبر الزر الموجود أعلى الصفحة.

التكامل عبر الويب

يمكن لـ FleetHub إخطار الخدمات الخارجية عند وجود أحداث مهمة للأسطول.

أحداث التوفر

  • vehicle.created, vehicle.updated, vehicle.deleted
  • requisition.approved, requisition.rejected, requisition.overdue, requisition.returned
  • handover.completed
  • compliance.expiring, compliance.expired
  • maintenance.due, maintenance.overdue, maintenance.completed
  • fleet_health_score.dropped

تنسيق الحمولة

{
  "event": "handover.completed",
  "timestamp": "2026-06-23T08:00:00+00:00",
  "data": {
    "vehicle_id": 1,
    "vehicle_code": "VH-2026-0001",
    "license_plate": "51A-12345",
    "handover_id": 12,
    "direction": "outgoing",
    "driver_id": 4
  }
}

التحقق من التوقيع

إذا تم تكوينه باعتباره سريًا، فسيكون للطلب رأسًا X-FleetHub-Signature يحتوي على HMAC-SHA256 الخاص بالنص. التحقق من الجانب الخاص بك:

$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-FleetHub-Signature'))) {
  // صالح
}

إعادة محاولة السياسة

يفشل التسليم ويحاول مرة أخرى 3 مرات، كل 200 مللي ثانية. بعد 10 حالات فشل متتالية، يتوقف خطاف الويب عن العمل تلقائيًا.

المهام المجدولة

يستخدم FleetHub جدولة Laravel لمهام الخلفية. فقط one cron — يقوم Laravel بتشغيل كل أمر fleethub: في الوقت المحدد.

الاستضافة المشتركة (Cron Jobs cPanel / Hostinger)

راجع تثبيت cPanel → الخطوة 7 أو تثبيت Hostinger → الخطوة 5. باختصار: متقدم → Cron Jobs، الأمر:

/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run

التقويم: كل دقيقة (* في الحقول الخمسة).

أمر cPanel كرون

استبدل CPANELUSER باسم مستخدم cPanel الخاص بك:

/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run

VPS/خادم خاص (crontab)

قم بتشغيل crontab -e مع مستخدم الويب وأضف:

* * * * * cd /path/to/FleetHub && php artisan schedule:run >> /dev/null 2>&1

الاحتياطي: ping URL الخارجي

إذا لم يكن لدى المضيف cron، فاستخدم عنوان URL الخاص بـ Cron في التطبيق (الإعدادات → النظام) مع cron-job.org (مجانًا، كل 15 دقيقة).

يتم تشغيل المهمة تلقائيا

وقتيأمرغاية
يوميا 08:00fleethub:send-requisition-overdue-alertsتمت الموافقة على الطلب ولكن لم يتم دفعه بعد تاريخ الإغلاق
يوميا 08:30fleethub:send-maintenance-remindersللتذكير بأن الصيانة ستنتهي قريبًا
يوميا 09:00fleethub:send-compliance-expiry-alertsتنتهي صلاحية الامتثال في 14/30/7/1 يومًا
يوميا 09:30fleethub:send-driver-license-alertsتحذير رخصة القيادة على وشك الانتهاء
اليوم الأول من كل شهر 02:00fleethub:update-vehicle-valuesتحديث قيمة السيارة الحالية من الإهلاك
يوميا 03:00fleethub:recalculate-fleet-health-scoreإعادة حساب وتخزين نقاط صحة الأسطول

أدلة الترقية

FleetHub v1.0.0 هو الإصدار الأول على CodeCanyon.

FleetHub v1.0.0 هو أول إصدار عام. لا توجد إصدارات سابقة للترقية منها. ستُضاف أدلة الترقية عند نشر إصدارات جديدة.

استكشاف الأخطاء وإصلاحها

"تم رفض الإذن" للتخزين

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

الماسح الضوئي QR لا يفتح الكاميرا

تتطلب واجهة برمجة تطبيقات كاميرا المتصفح HTTPS. قم بتثبيت SSL أو استخدم localhost عند الاختبار.

لم يتم استلام البريد الإلكتروني

تحقق من storage/logs/laravel.log بحثًا عن الأخطاء. استخدم الإعدادات → البريد الإلكتروني → إرسال بريد إلكتروني تجريبي لتأكيد معلومات SMTP. تأكد من أن خادم SMTP يسمح بإرسال عناوين IP.

قاعدة البيانات "تم رفض الوصول" (1045) على لوحة التحكم

مستخدم/كلمة مرور خاطئة، لم يتم تعيين المستخدم لقاعدة البيانات، أو أن الأحرف الخاصة في كلمة المرور تالفة .env. راجع تثبيت cPanel ← المشكلات الشائعة.

خطأ الترحيل 1067 (القيمة الافتراضية غير صالحة)

يرفض الوضع الصارم لـ MySQL على الاستضافة المشتركة أعمدة timestamp NOT NULL متعددة. تم إصلاحه من الإصدار 2.1.0+. تحديث الحزمة أو تغيير yêu cầu xe_date / expected_return_date إلى dateTime في الترحيل يتطلب xes.

APP_KEY مفقود / الخطأ 500 قبل التثبيت

يحتاج Laravel إلى APP_KEY في .env قبل تشغيل التطبيق. إذا لم يكن لدى cPanel محطة طرفية، فراجع تثبيت cPanel → الخطوة 5 (SSH أو genkey.php أو الإنشاء على جهاز الكمبيوتر).

إعادة ضبط الإعدادات

احذف storage/installed.lock وقم بالوصول إلى /install مرة أخرى. سيتم حذف البيانات الموجودة إذا تم تشغيل الترحيل مرة أخرى.

الأداء — قائمة السيارات البطيئة

تشغيل php artisan optimize. تأكد من تشغيل فهرس MySQL vehicles.vehicle_code، vehicles.license_plate، vehicles.status.

تغيير السجل

الإصدار 1.0.0 — الإصدار الأول (2026-06)

  • CRUD السيارة باستخدام رمز الاستجابة السريعة الذي تم إنشاؤه ذاتيًا والصفحة العامة /v/{vehicle_code}
  • 5 أدوار (المسؤول، مدير الأسطول، المدير، المحاسب، السائق)
  • إدارة برامج التشغيل ومزامنة انتهاء صلاحية رخصة القيادة مع قسم الامتثال
  • عملية طلب المركبة مع الجدول الزمني والتنبيهات المتأخرة
  • قم بتسليم السيارة باستخدام مخطط الضرر ثنائي الأبعاد وقائمة المراجعة والتوقيع وملف PDF
  • سجل الوقود، مكافحة الاحتيال في العدادات، مزامنة النفقات التلقائية
  • تكلفة السيارة وجدول التكلفة الإجمالية للملكية مع تحليل التكلفة/كم
  • الاستهلاك - القسط الثابت، الرصيد المتناقص، وحدات الإنتاج (كم)
  • يتوافق المنتج مع تحذير انتهاء الصلاحية لمدة 30/14/7/1 يوم
  • جدولة الصيانة والتجديد الذاتي الوقائي وتتبع التكاليف
  • النتيجة الصحية للأسطول وإعادة الحساب اليومي والوسائط التفصيلية
  • 7 تقارير للأسطول وتصدير Excel وPDF
  • الحقول المخصصة (7 أنواع) حسب فئة السيارة
  • تشير خطافات الويب إلى HMAC (X-FleetHub-Signature) وحاول مرة أخرى
  • سجل تدقيق Spatie Activitylog مع الاختلافات
  • واجهة مستخدم متعددة اللغات: 11 لغة بما في ذلك العربية RTL والهندية
  • إعدادات الشركة والأسطول والبريد الإلكتروني والإشعارات والامتثال المسبقة
  • مثبت الويب مع بذارة البيانات التجريبية
  • الوضع المظلم، واجهة المستخدم للجوال أولاً، ضغط الصور عند التحميل

ملحوظة

مكتبة مفتوحة المصدر المستخدمة