تكامل مع منصة مسار همم

خمس طرق لإتاحة وحدة AIR داخل
منصة مسار همم.

صُمِّمت الوحدة لتبقى مستقلة في البنية والتطوير، ومرنة في طريقة التشغيل: يمكن إتاحتها للمستخدم النهائي عبر المنصة بأي من المسارات الخمسة أدناه — بحسب جاهزية الواجهة الأم وأولويات الإطلاق.

الخيار 01

أيام · لا تغيير على الواجهة الأم.

تطبيق ويب مستقل ضمن نطاق مسار همم

تُستضاف هذه الوحدة على نطاق فرعي (assessment.masar-himam.sa) ويتم الوصول إليها من القائمة الرئيسية للمنصة عبر تسجيل دخول موحَّد.

الأنسب لـ: الإطلاق السريع دون تعديل واجهة المنصة الحالية.

  • نشر مستقل بالقدرة على التحديث دون انتظار دورة إطلاق المنصة.
  • ربط الهوية عبر SAML / OIDC مع موفّر الهوية الخاص بـ مسار همم.
  • إعادة التوجيه إلى مسار الطالب في المنصة بعد إكمال التقييم.

مثال — URL

https://assessment.masar-himam.sa/start?student_id={id}&return_url={url}&locale=ar

الخيار 02

أسبوع · يلزم إعداد CSP و postMessage.

تضمين عبر iframe داخل صفحات المنصة

تضمين الوحدة بإطار آمن داخل لوحة الطالب أو صفحة التقييمات في مسار همم، مع تمرير سياق الطالب عبر postMessage.

الأنسب لـ: إبقاء المستخدم داخل واجهة مسار همم دون انتقال مرئي.

  • تمرير معرّف الطالب والمقيّم واللغة عبر معاملات الإطار.
  • إشعار المنصة بأحداث الإكمال عبر window.postMessage لتحديث لوحة الطالب فورًا.
  • ارتفاع تكيّفي للإطار ليطابق محتوى التقييم دون شريط تمرير مزدوج.

مثال — html

<iframe
  src="https://assessment.masar-himam.sa/assess/embed?student_id=12345&form=student&locale=ar"
  title="تقييم AIR لتقرير المصير"
  allow="microphone"
  style="width:100%; min-height:720px; border:0;"
></iframe>

<script>
  window.addEventListener("message", (e) => {
    if (e.origin !== "https://assessment.masar-himam.sa") return;
    if (e.data?.type === "assessment.air.completed") {
      // تحديث لوحة الطالب في مسار همم
    }
  });
</script>

الخيار 03

اعتماد على نظام المكوّنات الحالي في مسار همم.

مكوّن React جاهز (حزمة npm داخلية)

تركيب الوحدة مكتبةً مباشرة في الواجهة الأمامية لمنصة مسار همم لاستخدامها كأي مكوّن من مكتبة المنصة، مع المشاركة الكاملة للتنسيقات والتنقّل.

الأنسب لـ: أعمق درجات التكامل البصري والتجربة الموحدة.

  • ثلاث نقاط دخول: AssessmentRunner، AssessmentResults، AssessmentSummaryCard.
  • تُورِّث الوحدة رموز التصميم (CSS Variables) من مسار همم.
  • تخزين البيانات في قاعدة المنصة مباشرة عبر دوال خادم مشتركة.

مثال — tsx

import {
  AssessmentRunner,
  AssessmentResults,
} from "@masar-himam/assessment-air";

export function StudentProfilePage({ studentId }) {
  return (
    <AssessmentRunner
      studentId={studentId}
      form="student"
      locale="ar"
      onComplete={(assessmentId) => {
        navigate(`/students/${studentId}/results/${assessmentId}`);
      }}
    />
  );
}

الخيار 04

تكامل خادم لخادم، يلائم البنية الانتقالية المستقبلية.

تكامل خلفي عبر REST / Webhooks

تستخدم منصة مسار همم واجهة برمجية لإنشاء التقييمات وجلب نتائجها وتلقي إشعارات الإكمال على Webhook، بصرف النظر عن واجهة الوحدة.

الأنسب لـ: محرك التخطيط في مسار همم الذي يستهلك المخرجات ويحوّلها إلى خطط.

  • POST /assessments — إنشاء تقييم بتوليد رابط مُؤمَّن لإكماله.
  • GET /assessments/{id}/scores — جلب الدرجات والتوصيات.
  • Webhook assessment.air.completed — تنبيه محرّك التخطيط فور توفّر النتائج.

مثال — http

POST https://assessment.masar-himam.sa/api/v1/assessments
Authorization: Bearer <platform_token>
Content-Type: application/json

{
  "student_id": "stu_2841",
  "rater_id": "usr_553",
  "form": "educator",
  "locale": "ar",
  "return_url": "https://app.masar-himam.sa/students/stu_2841"
}

// Webhook إكمال التقييم
POST https://app.masar-himam.sa/webhooks/assessment-air
{
  "event": "assessment.air.completed",
  "assessment_id": "air_lt93k_8m2",
  "student_id": "stu_2841",
  "scores": { "overall": 68, "capacity": 72, "opportunity": 64 }
}

الخيار 05

بدون تشغيل — قراءة فقط.

وحدة مرجعية فقط (مكتبة محتوى)

تُستخدم الوحدة كمرجع علمي ومعرفي داخل مسار همم دون التشغيل الفعلي — فقط بنك العبارات والتصحيح والقوالب يُستهلك بواسطة فرق التطوير.

الأنسب لـ: ربط مرجعي بإطار DTRF والمحتوى المعرفي للمنصة.

  • تصدير بنك العبارات بصيغة JSON بثلاث لغات (ar/en/es).
  • قوالب الأهداف الفردية كملف Markdown قابل للنسخ.
  • مخططات الدرجات والفئات بصيغة OpenAPI وJSON Schema.

أساسيات مشتركة بين كل الخيارات

عقود مشتركة لا تتغيّر

الهوية والصلاحيات

تعتمد الوحدة دائمًا على هوية مسار همم (SSO عبر OIDC أو SAML). لا تُنشئ حسابات مستقلة، ولا تخزن كلمات مرور.

ملكية البيانات

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

اللغة والاتجاه

العربية افتراضية مع RTL كامل، وتدعم التبديل إلى الإنجليزية والإسبانية بنفس بنية بنك العبارات.

الأحداث

ثلاثة أحداث رئيسية تُبث على ناقل المنصة: started, completed, recommended. يستهلكها محرّك التخطيط والتعلّم لاحقًا.

إمكانية الوصول

التزام كامل بـ WCAG 2.2 AA و UDL، يعمل بلوحة المفاتيح والقارئات الصوتية، ويُتيح أنماط استجابة بديلة.

الفصل عن منطق التخطيط

لا تتضمن الوحدة محرّك تخطيط أو توليد خطط؛ تكتفي بإنتاج ملف تقييم منظَّم يستهلكه محرّك مسار همم.

توصية بالتسلسل

مسار مقترح للإطلاق التدريجي

  1. 01

    المرحلة 1 — تجريبية

    نشر الخيار 01 (تطبيق مستقل) مع SSO، لاختبار التجربة على مدارس محدودة.

  2. 02

    المرحلة 2 — اندماج بصري

    الانتقال إلى الخيار 02 (iframe) أو 03 (مكوّن React) داخل لوحة الطالب في مسار همم.

  3. 03

    المرحلة 3 — اندماج عميق

    إضافة الخيار 04 (REST + Webhooks) لربط مخرجات التقييم بمحرّكَي التخطيط والتعلّم.