This document describes about Discussion Forum architecture
Background:
Problem Statement:
Key design problems:
How to create an independent widget that will be having end-to-end functionality
How to use existing user service/DB instead of creating new users account in NodeBB
Proxy layer: List of API’s explosed & widget will communicate with these API’s
Solution:
How to create an independent widget that will be having end-to-end functionality
Widgets list:
Categories list
Category list with details
Category list with only name(as a list)
Topics list
Filter options & search query should be the config for the widget (optional for now)
Note: Think this can be independent widget itself can be used at any place
Topic thread(with new post, list of posts & reply to post)
Create a Topic
Create Category
Post/Reply
Post card
Replay to post
After posting the reply(expanded view)
Middleware/Proxy layer: List of API’s explosed & widget will communicate with these API’s
Role Management:
NodeBB will be having existing roles like Admin, Moderator, Group & User.
Based on User login(sunbird user roles) middleware will map the NodeBB role to the user. On front-end, all the widgets will behave still on nodebb role mapped by middleware(based of sunbird role).
Front-end | Middleware | Nodebb |
---|---|---|
ContentCreator(SB role) | ContentCreator → Maderator | Moderator |
Anonymous/Public | Public → User | User |