NodeBB for Discussions in Sunbird

Groups

Global Admins - can do everything…

Global Moderators - moderators for all categories

Org Admins

  • group for all admins of tenants in Sunbird

  • view groups and create groups

Org Level Groups

<org>_members - e.g.: “MH Group”

  • share the group link via whatsapp with MH teachers

  • MH teachers will request to join

  • MH Group admin will accept it

<org>_moderators - e.g: “MH Moderators“

  • for moderating the MH forum

Categories

  • One category (forum) per org

    • <org>_moderators have moderation rights

    • <org>_members have access to create topics & posts

  • One general category per instance

    • all registered users have access to create topics & posts

    • global admins & global moderators have moderation rights

Sub-Categories

  • For subjects within a tenant or for courses within a tenant..

  • possible to have the same group moderating all sub-categories

Use Cases

  • One Forum for each tenant - with a set of moderators and users

  • Multiple sub-forums for each tenant

    • e.g.: “Physics” subject forum under NCERT

    • e.g.: “Course - 1” forum a specific course being run by Maharashtra

  • Independent Forums (not for MVP):

    • e.g. for Sunbird Groups: equivalent group and category in NodeBB..

Telemetry

  • Hooks

Dashboards

  • Show it in Sunbird portal

API

  • All above scenarios should be possible via API

Horizontal Scalability

  • Docker deployment in Kubernetes

  • Database: Supports both redis and mongo clusters

 


Working Notes

From Pramod’s email:

  1. Functional

    1. Tenant level isolation of forums and control

    2. "forums-->sub-forums" capabilities within tenant isolation

    3. Moderators being same/separate for each forum/sub-forum

    4. Access control for "membership" for each forum/sub-forum

    5. Configuring "what's enabled" (voting enabled, reply enabled, like/rating button enabled, attachments allowed, etc) at forum level

    6. Ability to limit/enable "attachments" and "type of attachments" in replies/threads

    7.  

    8. Ability to "retire", "close", and "archive" forums/sub-forums

    9. Ability for us to use this platform for discussions within "group/course/content-review/VDN"

    10. use the same for "announcements" as well (where no replies/comments happen, but, anyone logged in to DIKSHA can see them as a "visitor")

  2. Non-functional

    1. APIs for all UI driven actions (ability to create forums via API, configure and assign moderators/access via API, and build custom UX through APIs)

    2. Ability to generate telemetry (we can generate via standard event hooks as long as they have some hooks)

    3. Horizontal scalability design