هذا المستودع هو الجزء الخلفي من تطبيق توصيل مبني على Rails، ويشمل واجهات لإدارة بيانات المستخدمين مع أدوار المدير والمطور.
🔗 مستودعات ذات صلة
- 🛒 تطبيق المستهلك - تطبيق مخصص للمستهلكين
- 👨💼 تطبيق البائع - تطبيق مخصص للبائعين
- 💲 API الدفع - API للدفع
🔍 انقر للتوسيع لمزيد من التفاصيل حول المكتبات والمفاهيم
-
المعالجة الخلفية: استخدام 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
-
استنساخ المستودعات ذات الصلة:
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
-
تحميل ملف
docker-compose.yml
: -
تشغيل الأوامر التالية في دليل المشروع الجذري:
docker-compose up --build
-
انقر على "تشغيل الهجرات المعلقة" في تطبيق الجزء الخلفي.
-
ادخل حاوية الجزء الخلفي وقم بتشغيل البذور:
docker exec -it backendContainerName /bin/sh rails db:seed
-
إعداد متغيرات البيئة:
JWT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx
-
أعد تشغيل الحاويات لتحميل المتغيرات.
🛠️ بدون استخدام 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-server
bundle exec sidekiq
📝 مشاريع أخرى
- 📏 تطبيق Precision (React) - واجهة لتسجيل قياسات المياه والغاز
- 🤖 API قياس - API لقياس وتسجيل الاستهلاك