Skip to content

Latest commit

 

History

History
184 lines (115 loc) · 7.76 KB

README_ar.md

File metadata and controls

184 lines (115 loc) · 7.76 KB

Java Projects Logo تطبيق التوصيل Java Projects Logo

🌐 اللغات

Português Español English Русский 中文 العربية

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

مثال على واجهة المدير


🔗 مستودعات ذات صلة

📚 المفاهيم والمكتبات المستخدمة

🔍 انقر للتوسيع لمزيد من التفاصيل حول المكتبات والمفاهيم
  • المعالجة الخلفية: استخدام Sidekiq لمعالجة المهام غير المتزامنة. Redis تُستخدم كقائمة انتظار لتخزين هذه المهام.

  • التقسيم: استخدام مكتبة Kaminari لتنفيذ تقسيم قائمة الموارد.

  • اختبارات RSpec وShoulda Matchers: كتابة اختبارات وحدات واختبارات تكامل واختبارات وظيفية باستخدام RSpec.

  • تغطية الاختبارات باستخدام SimpleCov: دمج مكتبة SimpleCov لتحليل تغطية الشيفرة.

  • الحذف الناعم باستخدام Discard: تنفيذ الحذف الناعم باستخدام مكتبة Discard.

  • Bullet لكشف استعلامات N+1: استخدام مكتبة Bullet لاكتشاف ومنع مشاكل الأداء مثل استعلامات N+1.

  • إخفاء البيانات: تطبيق طرق لإخفاء البيانات لحماية البيانات الحساسة والامتثال لقوانين حماية البيانات مثل LGPD.

  • API RESTful: تطوير RESTful API، اتباع مبادئ الهندسة البرمجية لضمان التواصل الفعال بين الجزء الخلفي والجزء الأمامي.

  • Swagger: استخدام مكتبة Rswag (المبنية على Swagger) لتوليد وثائق API تلقائيًا.

  • Docker: دعم استخدام Docker للتشغيل في حاويات، مما يسهل عملية التطوير والاختبار والنشر.

  • معالجة الصور: استخدام مكتبة ImageProcessing لمعالجة الصور مثل تغيير الحجم والضغط.

  • WebSockets وSSE: استخدام WebSockets لتنفيذ الاتصال في الوقت الحقيقي.

  • حساب المسافة: استخدام مكتبة Geocoder لحساب المسافة بين العملاء والأعمال.

  • التدفق: استخدام التدفق لتحسين توازي الأداء عند تنفيذ العمليات المتوازية.

  • إدارة الجلسات والتحقق من الهوية: استخدام Devise للتحقق من هوية المستخدمين والتحقق من الهوية عبر JWT.

  • إدارة CORS: استخدام مكتبة rack-cors لإدارة أذونات CORS.

  • آلات الحالة باستخدام state machine: استخدام مكتبة state_machines-activerecord لتنفيذ آلات الحالة في نماذج ActiveRecord.

  • Faraday للتفاعل مع واجهات API الخارجية: استخدام مكتبة Faraday للاندماج مع الخدمات الخارجية.

  • أتمتة المهام وDevOps: دعم هيكل DevOps باستخدام أدوات مثل Sidekiq وDocker.


⚙️ إعداد المشروع

🛠️ باستخدام Docker

المتطلبات الأساسية

  • تأكد من تثبيت Docker وDocker Compose على جهاز الكمبيوتر الخاص بك.
  • Docker
  • Docker Compose

الإعداد

  1. استنساخ المستودعات ذات الصلة:

    git clone https://github.com/SamuelRocha91/consumy.git
    git clone https://github.com/SamuelRocha91/seller_application.git
    git clone https://github.com/SamuelRocha91/paymenty.git
    git clone https://github.com/SamuelRocha91/delivery_back.git
    
  2. تحميل ملف docker-compose.yml:

  3. تشغيل الأوامر التالية في دليل المشروع الجذري:

    docker-compose up --build
  4. انقر على "تشغيل الهجرات المعلقة" في تطبيق الجزء الخلفي.

  5. ادخل حاوية الجزء الخلفي وقم بتشغيل البذور:

    docker exec -it backendContainerName /bin/sh 
    rails db:seed
  6. إعداد متغيرات البيئة:

    JWT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx
  7. أعد تشغيل الحاويات لتحميل المتغيرات.

🛠️ بدون استخدام Docker

المتطلبات الأساسية

  • تأكد من إعداد Redis وSidekiq وتشغيلهما على جهاز الكمبيوتر المحلي الخاص بك.

  • تثبيت تبعيات R:

    install.packages("FactoMineR")
    install.packages("ggplot2")
    install.packages("reshape2")

تثبيت التبعيات

bundle install

إعداد قاعدة البيانات

إنشاء قاعدة بيانات وتشغيل الهجرات:

rails db:create
rails db:migrate

بدء الخادم المحلي

rails server

تشغيل الاختبارات

bundle exec rspec

بدء Redis وSidekiq

redis-server
bundle exec sidekiq

📝 مشاريع أخرى