Files
maps-saas/SYSTEM_GUIDE_AR.md
T

3.5 KiB

دليل نظام خرائط الأردن (Map SaaS) 🗺️

هذا الدليل يشرح المكونات التقنية للنظام والأوامر المستخدمة لإدارته باللغة العربية.

1. المكونات الأساسية للنظام 🏗️

النظام يعتمد على تقنية Docker، وهي تقنية تسمح بتشغيل التطبيقات في بيئات معزولة تسمى "حاويات" (Containers).

أ. خادم الويب (Web Dashboard)

  • الوظيفة: الواجهة التي يراها المستخدم.
  • التقنية: React + Vite.
  • المنفذ المحلي: 3201.

ب. الواجهة البرمجية (API Backend)

  • الوظيفة: معالجة المنطق البرمجي، حساب المسارات، والتعامل مع البيانات.
  • التقنية: NestJS.
  • المنفذ المحلي: 3200.

ج. خادم الخرائط (Martin Tile Server)

  • الوظيفة: تحويل البيانات الجغرافية من قاعدة البيانات إلى "مربعات" (Tiles) يمكن عرضها على المتصفح.
  • المنفذ المحلي: 3202.

د. محرك المسارات (GraphHopper)

  • الوظيفة: حساب أسرع طريق بين نقطتين مع مراعاة الازدحامات المرورية.
  • المنفذ المحلي: 8080 (داخلي).

2. أوامر التحكم الأساسية (Docker Commands) 💻

إليك الأوامر التي استخدمناها وكيف تعمل:

  • docker compose up -d:

    • تشغيل كل خدمات النظام في الخلفية.
    • حرف -d يعني "Detached" (أي يعمل في الخلفية دون إغلاق التيرمينال).
  • docker compose restart [service_name]:

    • إعادة تشغيل خدمة معينة (مثلاً martin أو api) لتحديث الإعدادات.
  • docker compose logs -f [service_name]:

    • عرض سجلات العمليات (Logs) للخدمة. مفيد جداً لاستكشاف الأخطاء.
  • docker compose run --rm osm-import:

    • أمر خاص لتشغيل عملية استيراد خرائط الأردن (OSM) إلى قاعدة البيانات.
    • العلم --rm يعني مسح الحاوية المؤقنة بعد الانتهاء.

3. تحسينات الأداء والأمان 🔐

أ. التشفير (Polyline Encoding)

لقد قمنا بتغيير طريقة إرسال المسار من "قائمة إحداثيات طويلة" إلى "نص مشفر" (Polyline). هذا يقلل حجم البيانات بنسبة تصل إلى 90%، مما يجعل التطبيق أسرع بكثير على الهواتف.

ب. مفتاح الأمان (API Key)

تم إضافة طبقة حماية للمنع الاستخدام غير المصرح به للواجهة البرمجية. يجب إرسال مفتاح سري (x-api-key) في ترويسة كل طلب.


4. كيفية إضافة خرائط جديدة (مثل سوريا) 🇸🇾

الأمر بسيط جداً بفضل استخدام Docker:

  1. تحميل ملف الخريطة بصيغة .osm.pbf.
  2. دمج الملف مع خارطة الأردن باستخدام أداة osmium.
  3. إعادة تشغيل أمر الاستيراد (osm-import).

🔧 ملاحظة: جميع الإعدادات محفوظة في ملف .env. لا تقم بتغييره إلا إذا كنت متأكداً من المنافذ وكلمات المرور.