This document describes about Discussion Forum architecture
...
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:
NodeBB default UI options:
...
Default NodeBB UI with customization:
We built a plugin that will help to customize the UI functionality of page & new route exposed for custom logic. Similarly, any customization can be achieved with a custom plugin(Route & UI screen)
...
We have to handle the below privileges when we do custom UI:
...
Custom UI (for NodeBB) | Default UI (NodeBB) |
...
We can have independent widgets that can be added in any page as per the requirement | We have to load the entire UI in an Iframe & handle the redirect based on URL parameters |
Any new feature update by NodeBB should be implemented from fresh. If it is impacting on any existing functionality we should do again | Any feature will be available by default. All the configurations will be handled by the default UI itself |
Role/Privileges management to show/hide the options has to be implemented from scratch. can post, upvote, downvote, flag, group management, adding user, topic creation etc. | Role/Privileges management is already exist. |
Igot Requirement | Sunbird Requriement |
Any logged in user can add post/topic in any discussion thread | Only enrolled users of the course should able to post/topic in the specific thered attached to the course |
There is not nodebb groups concept. Hence any user can acees any discussion thread. | We should have groups concept to access discussion thread specific to groups. |
There is not privilege control UI. The same options will be available for Admin, Moderator, Members & Guest | Priviledge control UI required to manage Moderator & Memers. Moderator should able to do below actions
|
nodebb-Plugins:
NodeBB Censor Curse Words: https://github.com/ninenine/nodebb-plugin-beep
NodeBB Custom Route: https://github.com/vinukumar-vs/nodebb-plugin-vsv-homepage
Nodebb Plugin Quick Start: https://github.com/NodeBB/nodebb-plugin-quickstart
How to create an independent widget that will be having end-to-end functionality
...
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)
...