انتقل إلى المحتوى

توثيق Workora

كل ما تحتاجه لتثبيت Workora وإعداده وتشغيله وتوسعته: من أول رفع إلى المدفوعات والأمان والتحديثات وواجهة REST.

نظرة عامة#

Workora سكربت متكامل لمنصة عمل حر على الويب. ينشر العملاء مشاريع ويستقبلون عروضاً، أو يشترون خدمات جاهزة. تتحرك الأموال عبر ضمان بالمراحل، ولكل عضو محفظة، وتُسجَّل كل دفعة في دفتر قيد مزدوج.

إصدار المنتج 1.0.0 ومبني على Laravel 13. فيه موقع عام ومنطقة للأعضاء ولوحة إدارة، ويأتي بالإنجليزية والعربية.

جرّب قبل أن تقرأ. المعاينة المباشرة تعرض كل الميزات ببيانات تجريبية. استخدم أزرار الدخول بنقرة في صفحة الدخول.
workora-demo.devdoor.tech
home-sectionshome-sections

المتطلبات#

العنصرالمطلوب
PHP8.4 أو أحدث
إضافات PHPbcmath وctype وcurl وfileinfo وgd (مع WebP) وintl وmbstring وopenssl وpdo_mysql وtokenizer وxml وzip. إضافة sodium مطلوبة للتحديثات الموقّعة فقط.
قاعدة البياناتMySQL 8.0+ أو MariaDB 10.6+ (utf8mb4)
خادم الويبApache أو Nginx أو LiteSpeed مع HTTPS
Cronمهمة واحدة تعمل كل دقيقة

لا تحتاج Node.js ولا Composer على الخادم: الحزمة تأتي بتبعياتها وأنماطها المجمّعة.

التثبيت#

  1. ارفع محتويات المجلد 1-Source/workora إلى خادمك. يجب أن يشير جذر الويب إلى المجلد public.
  2. أنشئ قاعدة بيانات MySQL فارغة ومستخدماً لها.
  3. افتح https://your-domain/install في المتصفح. يفحص المثبّت خادمك ثم يسأل عن قاعدة البيانات واسم الموقع وعنوانه والمنطقة الزمنية وحساب المدير.
  4. عند الانتهاء يعرض سطر cron المطلوب إضافته. ثم سجّل الدخول من /login وافتح /admin.

سطر الأوامر (اختياري)

php artisan app:install \
  --db-name=workora --db-user=root --db-password=secret \
  --app-name="My Marketplace" --app-url=https://example.com \
  --admin-name="Admin" --admin-username=admin \
  --admin-email=admin@example.com --admin-password="a-strong-password"

أضف --create-database لإنشاء قاعدة البيانات، و--demo لبيانات تجريبية في مواقع المعاينة فقط.

الاستضافة المشتركة (Hostinger وcPanel)#

تعمل الاستضافة المشتركة جيداً، والمعاينة المباشرة تعمل عليها. أأمن ترتيب هو إبقاء التطبيق خارج المجلد العام:

domains/your-domain/
  workora/        التطبيق (ليس عاماً أبداً)
  public_html/    index.php و.htaccess ومجلدا build وflags
  1. اختر من لوحة الاستضافة PHP 8.4 للنطاق وفعّل الإضافات المذكورة أعلاه.
  2. ارفع الحزمة ثم ضع public باسم public_html وبقية الملفات باسم workora.
  3. في public_html/index.php وجّه المسارات إلى مجلد التطبيق (النسخة المعبأة من public_html تفعل ذلك).
  4. أنشئ قاعدة البيانات من اللوحة ثم شغّل المثبّت.
  5. أضف مهمة cron من اللوحة: /usr/bin/php /home/USER/domains/your-domain/workora/artisan schedule:run كل دقيقة.
الروابط الرمزية. بعض الاستضافات تعطّل symlink(). إن تعذّر إنشاء رابط التخزين العام فأنشئ public_html/storage رابطاً إلى workora/storage/app/public عبر SSH أو اطلب ذلك من الاستضافة.

مهمة Cron#

مهمة واحدة تشغّل كل شيء: البريد والإشعارات المؤجلة والإفراج التلقائي عن العقود وانتهاء المشاريع وتجديد الباقات وتذكيرات الاجتماعات وإحصاءات التقييم ومطابقة الدفتر الليلية والنسخ الاحتياطية.

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

تعرض صفحة الصحة في لوحة الإدارة هل عمل المجدوِل مؤخراً.

الخطوات الأولى#

  1. الإعدادات ← عام: اسم الموقع والشعار النصي والعملة الأساسية (اخترها قبل الإطلاق) وبريد التواصل والمنطقة الزمنية والدولة الافتراضية.
  2. المظهر: الثيم والألوان والشعار والأيقونة والعرض وأقسام الرئيسية وإشعار ملفات الارتباط.
  3. اللغات: فعّل اللغات وحدّد الافتراضية وراجع الترجمات.
  4. المدفوعات: فعّل البوابات واضبط العمولة والإيداع وقواعد السحب.
  5. البريد: اضبط SMTP وأرسل رسالة اختبار.
  6. المحتوى: حرّر الصفحات والأسئلة الشائعة والمدونة والآراء.
  7. التصنيفات: عدّل التصنيفات الرئيسية الـ14 والفرعية الـ125 لتناسب تخصصك.
workora-demo.devdoor.tech
adminadmin

المدفوعات#

فعّل أياً من هذه الطرق في الإعدادات ← المدفوعات. تعرض كل طريقة عنوان webhook لتسجيله لدى المزوّد.

الطريقةملاحظات
Stripeبطاقات. المفتاح السري وسر توقيع webhook. العنوان: /webhooks/stripe
PayPalتجريبي أو حقيقي؛ معرّف العميل والسر ومعرّف webhook. العنوان: /webhooks/paypal
Paystack وRazorpay وFlutterwaveالمفاتيح وأسرار webhook؛ العناوين تحت /webhooks/{gateway}
حوالة بنكيةبيانات حسابك؛ يرفع الأعضاء إثباتاً ويعتمده الفريق
اختبر في البيئة التجريبية أولاً. أجرِ إيداعاً تجريبياً مع كل بوابة تفعّلها وتأكد من وصول webhook قبل قبول أموال حقيقية.

للإيداع حد أدنى وأقصى. السحب عبر PayPal أو بيانات بنكية بحد أدنى ورسم اختياري وفترة احتجاز اختيارية وحد للطلبات المفتوحة.

البريد الإلكتروني#

اضبط الإعدادات ← البريد على خادم SMTP وأرسل رسالة اختبار. حتى ذلك الحين تُكتب الرسائل في السجل. الإشعارات مؤجلة وتُسلَّم عبر cron خلال دقيقة. يختار الأعضاء الفئات التي تصل صندوقهم من إعدادات الإشعارات.

المظهر والثيمات#

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

التخطيط: اختر عرضاً قياسياً أو واسعاً أو كاملاً وكثافة البطاقات. الرئيسية: بدّل الأقسام (شريط التصنيفات والأرقام ولماذا نحن وأفضل المستقلين والمشاريع والآراء واللافتات) وحدّد عدد صفوف التصنيفات وهل تتحرك أو تُعرض شبكة. يختار الأعضاء وضع الألوان وكذلك الثيم إن سمحت لهم.

workora-demo.devdoor.tech
admin-appearanceadmin-appearance

اللغات واليمين لليسار#

تعرض اللغات اللغات المفعّلة. أضف لغة من قالب جاهز أو برمزها وحدّد اتجاهها وعلَمها، ثم افتح ترجمة لتعديل كل نص في جدول قابل للبحث واستيراد ملفات JSON وتصديرها ومعرفة ما لم يُترجم. تُترجم محتويات التصنيفات والمهارات والصفحات والمدونة والأسئلة الشائعة في محرر كل عنصر.

تتبدل الواجهة كاملة تلقائياً للغات من اليمين لليسار. ولكل لغة عنوانها القابل للأرشفة (?lang=ar) مع روابط hreflang وخريطة موقع متعددة اللغات.

كيف يعمل المال#

  • يموّل العميل مرحلة من محفظته فينتقل المال إلى الضمان.
  • يسلّم المستقل؛ ويقوم العميل بـالموافقة (يُفرَج عن الدفعة مطروحاً منها العمولة) أو يطلب تعديلات أو يفتح نزاعاً. إن لم يفعل العميل شيئاً يُفرَج عن الدفعة تلقائياً بعد الأيام المحددة.
  • كل حركة قيد متوازن في دفتر القيد المزدوج. ومهمة ليلية تثبت أن المحافظ والضمان والإيرادات متسقة.

العمولة

حدّد نسبة المنصة في الإعدادات ← المدفوعات، وحداً أدنى للعمولة لكل دفعة اختيارياً، ونسبة مختلفة لأي تصنيف، ونسبة أقل لأي باقة. الأولوية: الباقة ثم التصنيف ثم الافتراضية. يحتفظ العقد بالنسبة التي أُنشئ بها.

الأعضاء والإشراف#

لأدوار الفريق (مدير ومشرف ومالية ودعم) صلاحيات محدودة بما يحتاجونه؛ وحسابات الفريق تتطلب مصادقة ثنائية. من المستخدمون يمكنك البحث وتعليق الأعضاء أو حظرهم وتعيين الأدوار. يمكن مراجعة المشاريع والخدمات قبل نشرها؛ وللتقييمات والبلاغات طوابيرها؛ ويبتّ الفريق في النزاعات بملاحظة مسجّلة.

المحتوى وSEO#

أدر الصفحات والمدونة والأسئلة الشائعة والآراء من المحتوى، وكلها قابلة للترجمة. يولّد Workora خريطة موقع ببدائل اللغات ووسوم canonical وOpen Graph وبيانات منظمة للخدمات وقواعد robots. الصفحات العامة سريعة ومناسبة للتخزين المؤقت.

الباقات وConnects والحدود#

ثلاث طرق مستقلة للربح وللتحكم بالنشاط؛ استخدم أياً منها أو كلها:

  • Connects: العروض تكلّف نقاطاً. حدّد سعر العرض والنقاط المجانية وحجم الحزمة وسعرها.
  • الباقات: اشتراكات شهرية تمنح Connects وتخفّض العمولة وتغيّر الحدود.
  • الحدود (الإعدادات ← الحدود والباقات): فعّل أياً من عدد العروض يومياً أو أسبوعياً أو شهرياً وعدد الخدمات وعناصر المعرض والعقود الجارية معاً. يحصل الأعضاء بلا باقة على الأرقام المجانية؛ ولكل باقة أرقامها (0 تعني بلا حد).

يرى الأعضاء استخدامهم في صفحة الباقات ويُبلَّغون عند بلوغ حد.

workora-demo.devdoor.tech
plansplans

الملفات ومعرض الأعمال والتوثيق#

يبني المستقلون الثقة بعنوان مهني ومهارات وسعر ساعة وروابط وخبرات ومؤهلات وشهادات ولغات (تبويب السيرة الذاتية) ومعرض أعمال يعدّلونه ويخفونه ويميّزونه ويرتّبونه، وسيرة قابلة للطباعة على /u/username/resume. يعرض شريط قوة الملف ما ينقص.

التوثيق: البريد والصورة الشخصية والهوية (جواز أو بطاقة أو رخصة). تُعاد ترميز المستندات وتُحفظ على القرص الخاص ولا يراها إلا الفريق في الإدارة ← التوثيق حيث تعتمد أو ترفض بسبب. توثيق الهاتف معروض بعبارة «قريباً». يمكن اشتراط هوية موثّقة قبل أول سحب.

workora-demo.devdoor.tech
profileprofile

المراسلة والاجتماعات#

في المراسلة قائمة المحادثات والدردشة ولوحة جانبية بالشخص والمشروع والطلبات والعقود والاجتماعات والملفات المشتركة، كلٌّ منها يقود إلى صفحته. تصل الرسائل حيّة وتظهر إشعارات القراءة وتُدعم المرفقات. قبل وجود عقد تُحجب عناوين البريد وأرقام الهاتف والروابط لحماية عمولتك (يمكنك تغيير ذلك).

الاجتماعات: يستطيع أي طرف جدولة اجتماع: اختر الوقت (يظهر لكل شخص بمنطقته الزمنية) والمدة ورابطاً من Zoom أو Google Meet أو Teams أو Webex أو Jitsi أو Whereby أو Skype (أو أنشئ غرفة Jitsi مجانية). تظهر الدعوة بطاقةً فيها قبول ورفض وأضف إلى التقويم (ملف ics) وزر انضمام يُفتح قبل الموعد بـ15 دقيقة. ويُذكَّر الطرفان. من الإعدادات ← الرسائل والملفات يمكنك إيقاف الاجتماعات أو السماح بأي رابط https.

workora-demo.devdoor.tech
messagesmessages

دردشة الدعم#

يفتح الأعضاء الدعم للتحدث مع فريقك؛ ويستخدم الزوار نموذج الاتصال ويصلهم الرد بالبريد. من الإدارة ← الدعم تفلتر بالحالة والموضوع والأولوية والمُسنَد إليه، وتُسنِد المحادثات وتكتب ملاحظات خاصة وتُدرج ردوداً محفوظة، وترى زمن أول رد وتقييمات الأعضاء. بعد إغلاق المحادثة يقيّم العضو المساعدة.

الإحالات والكوبونات والإشعارات#

الإحالات مفعّلة افتراضياً: يكسب الداعي مكافأة عندما يُكمل العضو المدعو عقداً مدفوعاً. للأعضاء صفحة مشاركة بأزرار نسخ ومشاركة وعدد زيارات ونتائج؛ حدّد المكافأة وهدية ترحيب وأدنى عقد في الإعدادات ← الإحالات، وشاهد الإجماليات في الإدارة ← الإحالات. تضيف الكوبونات رصيداً للمحفظة مرة لكل عضو بحدود وتاريخ انتهاء.

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

تطبيق قابل للتثبيت (PWA)#

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

واجهة REST#

تأتي واجهة JSON للقراءة فقط. فعّلها من الإعدادات ← عام. ينشئ الأعضاء رموزاً من صفحة الأمان (تظهر مرة واحدة ويُخزَّن هاش فقط وبانتهاء اختياري). أرسل Authorization: Bearer wk_...؛ كل رمز محدود بـ60 طلباً في الدقيقة. القيم المالية أعداد صحيحة بالوحدة الصغرى بجانب رمز العملة.

المساريعيد
GET /api/v1/meملف صاحب الرمز
GET /api/v1/categoriesالتصنيفات وفروعها
GET /api/v1/gigs و/gigs/{id}الخدمات المنشورة (فلاتر q وcategory)
GET /api/v1/projects و/projects/{id}المشاريع العامة المفتوحة
GET /api/v1/wallet و/orders و/contracts و/notificationsسجلات صاحب الرمز
curl -H "Authorization: Bearer wk_your_token" https://your-site.example/api/v1/gigs?q=logo

النسخ الاحتياطي والصحة#

نسخة يومية لقاعدة البيانات ونسخة أسبوعية كاملة (مع الملفات) تعملان بالجدولة وتُعرضان في الصحة حيث يمكنك تنزيلها. وتفحص الصفحة نفسها PHP والإضافات والصلاحيات والمجدوِل والطابور والدفتر ومساحة القرص. اضبط مسار mysqldump في .env (BACKUP_MYSQLDUMP) إن لم يكن في مسار الخادم.

التحديث#

  1. انسخ قاعدة البيانات والملفات احتياطياً.
  2. افتح الإدارة ← التحديثات وارفع حزمة التحديث الموقّعة وراجع الملخص.
  3. طبّقه. يتحقق Workora من التوقيع وينسخ الملفات الجديدة ويشغّل الترحيلات ويمسح الذاكرة المؤقتة. يبقى .env والمرفوعات والإعدادات.

على الخوادم دون إضافة sodium يمكن التحديث يدوياً: ارفع الملفات الجديدة فوق القديمة ثم شغّل php artisan migrate --force وphp artisan optimize:clear.

بيانات العرض وموقع المعاينة#

الأمر php artisan app:demo يضيف أعضاء ومشاريع وخدمات تجريبية لأي تثبيت؛ و--full يملأ كل تصنيف فرعي. لمعاينة عامة اضبط DEMO_MODE=true في .env وشغّل php artisan demo:reset؛ ويعيدها cron كل ساعة. في وضع المعاينة تظهر لافتة بالحسابات التجريبية وزر دخول بنقرة وتُحجب الإجراءات الخطرة (الإعدادات والفريق والتحديثات والنسخ والمدفوعات الحقيقية). اضبط DEMO_PURCHASE_URL لإظهار زر «اشترِ».

لا تفعّل وضع المعاينة أبداً في منصة حقيقية. إعادة الضبط تحذف كل البيانات.

قائمة الأمان#

  • قدّم كل شيء عبر HTTPS وأبقِ APP_DEBUG=false.
  • أبقِ مجلد التطبيق خارج جذر الويب العام أو امنع الوصول إليه.
  • على الفريق استخدام المصادقة الثنائية.
  • أبقِ .env خاصاً واحتفظ بنسخة منه على حدة.
  • استخدم كلمة مرور قوية لقاعدة البيانات وقيّد الوصول إليها بالخادم.
  • ثبّت ClamAV واضبط CLAMSCAN_PATH لفحص كل رفع (اختياري).
  • شغّل composer audit عند تحديث التبعيات.

مضمَّن: سياسة أمان محتوى صارمة بـ nonce وحدود للإجراءات الحساسة وتخزين خاص للمستندات والمرفقات وصور معاد ترميزها واختبار آلي يحاول الوصول لبيانات الأعضاء الآخرين وتحديثات موقّعة بـ Ed25519.

استكشاف الأخطاء#

المشكلةالحل
صفحة فارغة أو خطأ 500راجع storage/logs/laravel.log. تأكد أن storage وbootstrap/cache قابلان للكتابة وأن PHP 8.4+.
"Your Composer dependencies require PHP 8.4"اختر PHP 8.4 للنطاق من لوحة الاستضافة.
الأنماط مفقودةيجب أن يكون جذر الوثيقة public وأن يكون مجلد build فيه مرفوعاً.
صور المرفوعات مفقودةأنشئ رابط التخزين: public/storage يشير إلى storage/app/public.
لا يصل البريدراجع إعدادات SMTP وتأكد أن cron يعمل كل دقيقة.
رفض الملفات المرفوعةارفع upload_max_filesize وpost_max_size.
المدفوعات تبقى معلّقةتأكد من تسجيل عنوان webhook للبوابة وأنه قابل للوصول.

الدعم والترخيص#

يُباع Workora على CodeCanyon. يتبع الدعم والتحديثات سياسة دعم Envato، ويشمل المساعدة في التثبيت وتقارير الأخطاء؛ ولا يشمل العمل المخصص. المنصة التي تحصّل من الأعضاء رسوماً أو عمولات أو اشتراكات تحتاج الترخيص الممتد. مكونات الأطراف الثالثة مدرجة بتراخيصها في الحزمة.

اشترِ من CodeCanyon معاينة مباشرة

لا يوجد قسم يطابق بحثك.