النقاش كنظام إدارة تعلم / تكامل النقاش مع نظام إدارة التعلم

مثل الكثير منكم في هذا الموضوع، كنت أبحث عن طريقة خفيفة الوزن لاستخدام Discourse بشكل أصلي كنظام إدارة تعلم (LMS). أجد منصات LMS المخصصة ثقيلة جدًا، لكن خاصية “تلاشي الإشعارات” الافتراضية في Discourse (حيث تتوقف المواضيع القديمة عن الظهور كـ “غير مقروءة” للمستخدمين الجدد) تجعل تتبع تقدم الدورة صعبًا.

لتلبية حاجتي الخاصة، بنيت حلاً بسيطًا باستخدام مزيج من إعدادات التصنيفات، وإضافة خلفية صغيرة، ومكون سمة.

إليك كيف قمت بإعداده، والكود مفتوح المصدر الذي يمكنك استخدامه لتكراره!

الفكرة الأساسية: استخدام Discourse كنظام إدارة تعلم

لجعل هذا يعمل، أستخدم ميزات Discourse القياسية مع إضافة Discourse Doc Categories الرسمية:

  • الدورة = تصنيف: تحصل كل دورة على تصنيف خاص بها.
  • الدرس = موضوع: كل درس هو موضوع ضمن ذلك التصنيف.
  • الأذونات: يمكن للأعضاء الرد على الدروس (لطرح الأسئلة)، لكن يمكن للموظفين فقط إنشاء مواضيع جديدة.
  • الترتيب: يتم تثبيت ترتيب الدرس حسب تاريخ الإنشاء. (نصيحة: يتطلب هذا بعض التفكير المسبق عند نشر الدروس، أو يمكنك استخدام وحدة تحكم Rails لتأجيل أوقات إنشاء المواضيع بسرعة لفرض الترتيب الصحيح).
  • المنهج الدراسي: أستخدم إضافة Discourse Doc Categories لتعيين “موضوع فهرس”. يعمل هذا الموضوع الفهرسي كمخطط منهجي/متتبع للدورة ويعرض مخططًا جميلًا في الشريط الجانبي عندما يدخل المستخدمون الدورة.

القطعة المفقودة: تتبع حقيقي للتقدم

المشكلة في الإعداد أعلاه هي أنه عندما ينضم طالب جديد، لا تظهر موضوعات الدروس القديمة كـ “غير مقروءة”، لذا لا توجد لديهم طريقة لتتبع تقدمهم بصريًا.

لحل هذه المشكلة، بنيت إضافة خلفية تستفسر مباشرة من جدول قاعدة بيانات TopicUser للحصول على حالة القراءة التاريخية الحقيقية، ومكون سمة واجهة أمامية يحول الشريط الجانبي القياسي في Discourse إلى متتبع تقدم LMS في الوقت الفعلي.

1. شارات التقدم الرئيسية في الشريط الجانبي

يستبدل مكون السمة النقاط الزرقاء للإشعارات القياسية بمؤشرات تقدم [ مقروء / إجمالي ] لتصنيفات دوراتك.

2. علامات إتمام الدرس

عندما ينقر المستخدم داخل دورة، تقوم إضافة Docs بعرض المنهج الدراسي. يقوم مكون السمة الخاص بي بحقن علامات نجاح (fa-check) بجانب الدروس المحددة التي أنهى المستخدم قراءتها.

3. إتمام الدورة

بمجرد أن يقرأ المستخدم كل موضوع في التصنيف، تتحول شارة تقدم الشريط الجانبي تلقائيًا إلى علامة إتمام مرضية!

كيفية تثبيته

نظرًا لأن هذا يتطلب تجاوز ذاكرة التخزين المؤقت للإشعارات القياسية في Discourse، يجب عليك تثبيت كل من إضافة الخلفية ومكون السمة الأمامية.

الخطوة 1: تثبيت المتطلبات الأساسية
تأكد من تثبيت وإضافة Discourse Doc Categories الرسمية وتفعيلها. تستهدف إضافتي تحديدًا التصنيفات التي تم تكوين موضوع فهرس لها.

الخطوة 2: تثبيت إضافة واجهة برمجة التطبيقات الخلفية
أضف هذا إلى ملف app.yml الخاص بك أسفل docker_manager وأعد بناء الحاوية. يوفر هذا نقطة نهاية API سريعة جدًا لحالات القراءة.
:hammer_and_wrench: رابط المستودع: https://github.com/zsviczian/discourse-course-progress**

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/zsviczian/discourse-course-progress.git

الخطوة 3: تثبيت مكون سمة واجهة المستخدم
قم بتثبيته مباشرة عبر متصفح الويب الخاص بك في Admin > Customize > Themes > Install > From a Git Repository.
:hammer_and_wrench: رابط المستودع: https://github.com/zsviczian/discourse-course-progress-theme

آمل أن يساعد هذا الآخرين الذين يحاولون بناء دورات يقودها المجتمع دون تعقيد منصة LMS منفصلة! أخبرني إذا كنت ستستخدمها في النهاية.

3 إعجابات