متابعةً لذلك، إليك كيف أتخيل تلبية احتياجاتك على أفضل وجه باستخدام الميزات الجاهزة لـ Discourse. قد لا يكون هذا بالضبط ما يدور في ذهنك، ولكني أعتقد أنه يستحق النظر فيه كنقطة انطلاق للنقاش.
أولاً، سأضع بعض الافتراضات، والتي قد تكون صحيحة أو لا. يرجى إخباري أين أخطئ:
- سيكون هناك العديد من الدورات (عشرات، ربما مئات)
- سيتم إعداد الدورات بشكل دوري، في دفعات كبيرة، في بداية كل فصل دراسي (2-4 مرات في السنة)
- سيكون للدورات نهاية حياة
- يحتاج الأشخاص الذين يديرون الدورات إلى بعض القدرة على إعدادها بأنفسهم
- سيكون لدى الأشخاص الذين يديرون الدورات خبرة محدودة أو معدومة في إدارة موقع Discourse.
- يحتاج الأشخاص الذين يديرون الدورات فقط إلى رؤية دوراتهم الخاصة. قد يرغبون في رؤية دورات أخرى من حين لآخر كأمثلة، ولكن لا يحتاجون إلى المشاركة المستمرة فيها.
- ^ نفس الشيء بالنسبة للأشخاص الذين يأخذون الدورات
- يوجد فريق صغير جدًا يدير النظام ككل
- لا تحتاج الدورات حقًا إلى فئات فرعية؛ سيكون استخدام العلامات لتنظيم المحتوى داخل الدورات كافياً.
بالنظر إلى أن هذه النقاط قريبة، إليك ما أقترحه، أولاً على مستوى عالٍ:
- إنشاء عدد قليل من الفئات الرئيسية: واحدة لـ “الدورات الحالية”، وواحدة لـ “الدورات السابقة”، وواحدة لـ “الدورات القادمة”، وواحدة أو أكثر للأمور الأكثر عمومية حول النظام نفسه (مثل كيفية استخدام الموقع).
- تعيين نمط الصفحة الرئيسية ليكون “مربعات مع فئات” لعرضها بشكل بارز.
- استخدام فئات فرعية لكل دورة.
- إنشاؤها في “الدورات القادمة”.
- نقلها إلى “الدورات الحالية” عند بدء الفصل الدراسي.
- عند انتهاء الدورة، انقلها من “الدورات الحالية” إلى “الدورات السابقة”.
- التحكم في الوصول إلى الدورات باستخدام المجموعات (مزيد من التفاصيل أدناه).
التحكم في الوصول:
- لكل دورة، قم بإنشاء مجموعة من المجموعات التالية، على سبيل المثال: foo_interested، foo_enrolled، foo_admin.
- إنشاء مجموعتين إضافيتين: “browse_courses” و “browse_past_courses”.
- تعيين الفئات في “الدورات القادمة” و “الدورات الحالية” لتكون متاحة فقط للأشخاص في مجموعات الدورة المحددة والأشخاص في مجموعة “browse_courses”.
- تعيين الفئات في “الدورات السابقة” لتكون متاحة فقط للأشخاص في مجموعات الدورة المحددة والأشخاص في مجموعة “browse_past_courses”.
تجربة المستخدم للمجموعات والدورات:
- قم بتثبيت موضوع في الفئة الرئيسية لـ “الدورات القادمة” يشرح كيفية تصفح الدورات، مع آلية سهلة للأشخاص للانضمام إلى مجموعة “browse_courses”.
- ^ نفس الشيء لـ “الدورات الحالية”.
- ^ نفس الشيء لـ “الدورات السابقة”.
بالنسبة للدورات الفردية، قم بتثبيت موضوع في الفئة يشرح كيفية الانضمام إلى الدورة:
- الانضمام إلى مجموعة “foo_interested” و/أو “foo_enrolled”.
- إضافة الدورة إلى الشريط الجانبي الخاص بك.
ستكون الإدارة كثيفة العمالة في البداية، حيث سيحتاج كل دورة جديدة إلى شخص يتمتع بصلاحيات مناسبة إلى:
- إنشاء الفئة.
- إنشاء المجموعات.
- إنشاء الموضوع المثبت.
- إضافة الأشخاص إلى مجموعة _admins.
- تزويدهم بالمستندات التي يحتاجونها لإدارة دوراتهم الخاصة.
يمكن أتمتة بعض ذلك باستخدام أدوات خفيفة الوزن. اعتمادًا على من هو فريق الإدارة الرئيسي، قد يكون من المنطقي البدء بشيء خارج النطاق الزمني يضرب واجهة برمجة التطبيقات (API). أو ربما تحتاج إلى شيء يعتمد على واجهة المستخدم (UI) مدمج في Discourse كمكون سمة أو إضافة. ولكني أقترح البدء ببساطة هنا، والتركيز أولاً على تحديد عملية تعمل، ثم تصميم الأدوات حولها.
يعد توسيع نطاق الفئات مصدر قلق محتمل هنا. لدى Discourse بعض المشكلات في الأداء وتجربة المستخدم عندما يصبح عدد الفئات كبيرًا جدًا (مئات أو آلاف). سيشعر المستخدمون الذين لديهم وصول إلى فئات متعددة بتأثير ذلك، بينما لن يشعر أولئك الذين لديهم وصول محدود بذلك. هذا جزء من الدافع وراء تقييد الوصول إلى الفئات كما أوضحت.
مهتم جدًا بسماع أي ملاحظات أو أسئلة لديك حول ما سبق.