Welcome to our "PAWsitively” Enhanced NodeBB Guide created with care by Team Pawsitive! In this guide, we include step-by-step guides to use the new features we have implemented to Nodebb—posting anonymously, reacting with emojis, and marking posts as solved. This user guide also serves as evidence of our robust tests to see how we've ensured everything works purr-fectly!
- If you're an existing user, click the Login button at the top right corner, enter your username and password, then click Login to access your account.
- If you're new to NodeBB, click the Register button and follow the prompts to set up your new account.
- Once you’re in, click on the topic you are interested in posting in!
- Inside the topic, click the blue New Topic button and type up your post.
- Just before you post, notice the checkbox labeled Post Anonymously located to the left of the Submit button.
- Click Submit and congratulations! You have successfully posted anonymously!

- Click on the topic you are interested in posting in!
- Inside the topic, click the post you would like to add an emoji reaction to.
- Once you have posted your topic, you will find a toolbar to edit your post with different options. Some of these options include emoji reactions! Click on the reaction that best describes your feeling to the post!

- Click on the topic you are interested in posting in!
- Inside the topic, click the post you would like to mark as solved.
- Once you have posted your topic, you will find a toolbar to edit your post with different options. One of those options is Mark As Solved.
- Click on the button, and you’ll see the label change to Marked As Solved and turn green.

Automated Testing For Anonymous feature (backend): In the file test/topics.js, lines 201-254 we have created an automated test for the anonymous feature. The test initializes an administrator and a regular user, creating a sample category for testing that ensures the feature is tested on all angels. Within the test there is a non-anonymous user test and anonymous user test. The non-anonymous user test verifies that an admin can successfully create a topic with their username and display name correctly associated. The anonymous posting test confirms that a topic can be created anonymously, ensuring the topic is associated with a guest user (UID 0) and the username/display name are set to [[global:guest]].
Automated Testing For Emoji Reaction Feature:
In the file test/back-end/reactions.test.js, we developed a comprehensive suite of automated tests to ensure the reliability and functionality of the Emoji Reaction feature's backend. These tests encompass several key scenarios:
- Successful Reaction Addition (POST /api/post/:postId/reaction):
This test verifies that a valid emoji reaction (e.g., 👍) can be successfully added to a specified post. It ensures that the API endpoint correctly processes the request and updates the reaction count in the database. - Invalid Reaction Handling (POST /api/post/:postId/reaction):
This test checks the API's response to unsupported or malformed emoji reactions. It confirms that the system appropriately rejects invalid inputs with a 400 Bad Request status and a relevant error message. - Unauthorized Reaction Attempts (POST /api/post/:postId/reaction):
This test ensures that only authenticated users can add reactions. It simulates an unauthenticated user attempting to react, expecting a 403 Forbidden response to enforce access control. - Server Error Handling on Reaction Addition (POST /api/post/:postId/reaction):
This test assesses the API's ability to gracefully handle server-side errors during the reaction addition process. By simulating a database failure, it verifies that the API responds with a 500 Internal Server Error and an appropriate error message. - Successful Retrieval of Reaction Counts (GET /api/post/:postId/reactions):
This test validates that the API correctly retrieves and aggregates the counts of each type of reaction for a given post. It ensures accurate data representation and proper functioning of the retrieval endpoint. - Server Error Handling on Reaction Retrieval (GET /api/post/:postId/reactions):
This test examines the API's resilience when encountering server-side issues during the retrieval of reaction counts. It confirms that the system responds with a 500 Internal Server Error and a relevant error message when failures occur.
Despite the thoroughness of these tests, we encountered significant challenges with API routing configurations within the NodeBB framework. These unresolved routing issues prevented the API endpoints from functioning correctly, making it impossible to execute and verify the tests effectively. While the test cases did cover a wide range of scenarios, including successful operations, input validation, authentication enforcement, and error handling, the inability to resolve the underlying routing conflicts hindered the validation of the Emoji Reaction feature's backend functionality.
No tests were done for the solved feature as the backend of these features has not fully been implemented. Justification can be found in the Milestone for sprint 2 description.
In addition to automated tests, manual tests were done by all team members to test all of our newly integrated features. These are the steps each member took to perform these tasks:**
- Signed in as both an admin and student.
- Navigated to each topic type and created a new post.
- Clicked the ‘Post anonymously’ checkbox before submitting.
- Verified that once submitted their post author would appear as ‘Guest’ and the Icon would be a question mark.
- Signed in as both an admin and student.
- Navigated to each topic type and created a new post.
- Clicked on the emoji button reactions
- Verify that it would react and update the count for that reaction on the post
- Signed in as both an admin and student.
- Navigated to each topic type and created a new post.
- Clicked the ‘Mark As Solved’ button after submitting.
- Verify that the button is active and changes color and text.