Introduction
To make discussion within a context and every logged in user can be participated.
Architecture Diagram
Hierarchy of discussions
The below diagram explains the category & topics created for a Course & Batch. The same can be used for any other types like Group, Quiz, etc.
Category → It is like a container( can hold Sub-containers, Topics)
Topic → This will be always added to the container(Category, Sub-Category). This is a discussion topic/thread created within the category. Users can participate in the topic/discussion.
Post → This will be always added to the Topic. This is the user response/reply given for the discussion topic/thread. The user is participating in the topic by posting.
Tech Stack
Angular | 8 or above |
Nodejs | 14 or above |
Nodebb | v1.18.6 |
Redis | 6.2.5 |
Note: Install above things in your system.
Nodebb
NodeBB is an open source project which can be forked on GitHub (Link). It have plugin support. We can create new plugins for our requirement and link to nodebb.
How to setup nodebb in local environment
Note: Before staring nodebb setup in local. check redis is up and running. If not start redis first and do the setup.
Step:1
Clone the nodebb repo
git clone -b v1.18.x https://github.com/NodeBB/NodeBB.git nodebb
Step:2
Navigate to nodebb folder and do setup of nodebb using below command
./nodebb setup
While running the setup, nodebb will ask below question for initial setup.
>> URL used to access this NodeBB (http://localhost:4567) : Press Enter >> Please enter a NodeBB secret (44abfc50-3d6a-4e6c-a258-9f551f9faa5a) : Press Enter >> Would you like to submit anonymous plugin usage to nbbpm? (yes) : Press Enter >> Which database to use (mongo) : redis Now configuring redis database: >> Host IP or address of your Redis instance (127.0.0.1) : Press Enter >> Host port of your Redis instance (6379) : Press Enter >> Password of your Redis database : Press Enter >> Which database to use (0..n) (0) : 3 (redis db number) Admin User details >> Administrator username : admin >> Administrator email address : admin@test.com >> Password : Your password >> Confirm Password : Your password
Step:3
Now start the nodebb, Using below command.
./nodebb start
Step:4
Build the nodebb using the below command.
./nodebb build
Step:5
Open the browser with fallowing link http://localhost:4567
Use full commands
./nodebb log -> To see the logs ./nodebb status -> To check is nodebb running or not ./nodebb activate plugin-name -> To activate the plugin ./nodebb reset -p plugin-name -> To reset/disable the plugin ./nodebb stop -> To stop nodebb