Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Dynamic Tool #1 Stryker Mutator #89

Closed
wants to merge 91 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
c043ef9
add deadline
github-classroom[bot] Sep 8, 2024
832f7bb
project 1 changes
shantinghou Sep 11, 2024
8281e44
new line
shantinghou Sep 11, 2024
e50bd1f
empty
shantinghou Sep 11, 2024
509fe61
trailing space
shantinghou Sep 11, 2024
64e9003
Merge pull request #28 from CMU-313/shanting/project1changes
shantinghou Sep 11, 2024
52a2cd1
project1 changes
Sep 13, 2024
d4c11ce
Merge pull request #29 from CMU-313/guanjie/project_1
guanjiecheng Sep 13, 2024
4f14dcb
add q&a page
shantinghou Sep 16, 2024
2a52c13
Merge pull request #38 from CMU-313/shanting/newpage
shantinghou Sep 16, 2024
205df15
add checkbox
shantinghou Sep 17, 2024
54aa281
Merge pull request #39 from CMU-313/us2/addcheckboxannonymous
guanjiecheng Sep 17, 2024
85ae04d
initial changes
Sep 19, 2024
771bee1
adding button for private/public posting
Sep 19, 2024
877151b
update git ignore
Sep 19, 2024
6150430
add to backend
shantinghou Sep 19, 2024
93ae5fc
add nodebb composer changes
shantinghou Sep 19, 2024
546899d
remove
shantinghou Sep 19, 2024
9e3892f
new button for private/public posting
Sep 19, 2024
606ce45
Merge pull request #40 from CMU-313/us2/addcheckboxannonymous
guanjiecheng Sep 19, 2024
b974ca9
project 1 changes - refactor delete-posts
ilong4rennes Sep 19, 2024
b2c7884
added tpl files
ilong4rennes Sep 19, 2024
8276dc8
added tpl files
ilong4rennes Sep 19, 2024
a54a5ce
added solve button
ilong4rennes Sep 20, 2024
4877bc7
added plugin
ilong4rennes Sep 20, 2024
92ff4cf
Update README.md
shantinghou Sep 22, 2024
f8330bc
Update README.md
shantinghou Sep 22, 2024
b74f13a
Merge branch 'f24' into features/US39-UI
guanjiecheng Sep 22, 2024
0a97547
Merge pull request #41 from CMU-313/features/US39-UI
shantinghou Sep 23, 2024
fb73edc
slight changes about threadtools.js
ilong4rennes Sep 23, 2024
97bfd67
rollback
ilong4rennes Sep 23, 2024
bf07050
refactor thread tools
ilong4rennes Sep 23, 2024
b079e82
implement UI changes to annonymous profiles
shantinghou Sep 23, 2024
473deae
Deleted unused config and pid files
shantinghou Sep 23, 2024
c986ac6
nit: remove unintended but edited files
shantinghou Sep 23, 2024
21bf959
edit gitignore
shantinghou Sep 23, 2024
4a369d8
clean up changes
shantinghou Sep 23, 2024
d6d456b
add UI changes
shantinghou Sep 23, 2024
a223667
Merge pull request #44 from CMU-313/amanda/autoresolve
guanjiecheng Sep 23, 2024
0dbcbc3
fix post functionality for anonymous
shantinghou Sep 23, 2024
c15f531
lint
shantinghou Sep 23, 2024
84a5a44
missing postAnonymous check
shantinghou Sep 23, 2024
829846d
modify schema
shantinghou Sep 24, 2024
ef2ae48
fix errors
shantinghou Sep 24, 2024
9ad2369
Merge pull request #45 from CMU-313/us2/addcheckboxannonymous
guanjiecheng Sep 24, 2024
cd68bd9
changes
Sep 24, 2024
be6c4d1
action toggle
Sep 25, 2024
037b194
tests
shantinghou Oct 2, 2024
3173906
setup API routes, modify controllers
ilong4rennes Oct 3, 2024
27b0b1f
lint
shantinghou Oct 3, 2024
051634b
Merge pull request #46 from CMU-313/us2/tests
guanjiecheng Oct 3, 2024
5151d0a
Create UserGuide.md
shantinghou Oct 3, 2024
eb128a6
backend functionality and tests
Oct 3, 2024
10df453
Update UserGuide.md
ilong4rennes Oct 3, 2024
c5b2f80
added tests for us9 - resolve button
ilong4rennes Oct 6, 2024
2dc4aa4
added new test for resolve button, deleted unrelevant tests from prev
ilong4rennes Oct 6, 2024
b910ad8
Add tests for Resolved feature in topics
ilong4rennes Oct 6, 2024
de67e79
Update UserGuide.md - Shanting Section
shantinghou Oct 6, 2024
af2fc64
Update UserGuide.md - Shanting edit
shantinghou Oct 6, 2024
97f129a
Update UserGuide.md - Shanting edit syntax
shantinghou Oct 6, 2024
7d96492
Fixed bug with privileges to allow owners to also see their own priva…
Oct 6, 2024
9a1435c
Update UserGuide.md - update us9 testing guide
ilong4rennes Oct 6, 2024
07fa75a
Fixing linting styling issues
Oct 6, 2024
bfec322
Revert to first commit
sofiareyesfranco Oct 7, 2024
0442987
Fixed tests incorrectly wrote
Oct 9, 2024
e18e07c
Updating api schemas
Oct 9, 2024
55799c7
Fixing bugs in privileges
Oct 9, 2024
75a4d19
Merge pull request #48 from CMU-313/features/US39-UI
guanjiecheng Oct 9, 2024
aca215b
refactor code to remove console.logs
ilong4rennes Oct 9, 2024
a4b0c50
Merge pull request #47 from CMU-313/amanda/sprint2changes
ilong4rennes Oct 9, 2024
a40e6d0
Adding additional unit test
Oct 9, 2024
63ee3e0
fix lint
Oct 9, 2024
838f17a
Merge pull request #52 from CMU-313/features/US39-UI
guanjiecheng Oct 9, 2024
73aec4a
Update UserGuide.md for User Story 3
guanjiecheng Oct 9, 2024
0985fe1
Update UserGuide.md Added User Story Description
guanjiecheng Oct 9, 2024
062fcf6
Merge pull request #51 from CMU-313/revert-to-first
sofiareyesf Oct 9, 2024
4917f75
Revert "Update test/topics.js - Sofia edit"
sofiareyesf Oct 9, 2024
2607b26
Merge pull request #53 from CMU-313/revert-51-revert-to-first
sofiareyesf Oct 9, 2024
13dec08
Update UserGuide.md Adding additional notes
guanjiecheng Oct 9, 2024
a3da082
change nodebb-theme-harmony
ilong4rennes Oct 9, 2024
a6a0398
Update UserGuide.md - added title for second user story
ilong4rennes Oct 9, 2024
9982547
Merge pull request #54 from CMU-313/amanda/sprint2changes
ilong4rennes Oct 10, 2024
9b050a6
Update UserGuide.md
sofiareyesf Oct 10, 2024
32f7b09
Update UserGuide.md - delete template
ilong4rennes Oct 11, 2024
b050176
Update UserGuide.md - tests line number final check
ilong4rennes Oct 11, 2024
92ff78e
Add or update the Azure App Service build and deployment workflow config
guanjiecheng Oct 21, 2024
4bcf9f9
JSHint Integration and Testing
shantinghou Oct 21, 2024
783a909
remove 2nd package
shantinghou Oct 21, 2024
36ee8f2
added jshint to package
shantinghou Oct 21, 2024
5e21690
Merge pull request #55 from CMU-313/jshint
shantinghou Oct 21, 2024
7b681f1
Install Stryker and the required plugins
ilong4rennes Oct 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/f24_nodebb-team-turtles.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy Node.js app to Azure Web App - nodebb-team-turtles

on:
push:
branches:
- f24
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Node.js version
uses: actions/setup-node@v3
with:
node-version: '20.x'

- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present

- name: Zip artifact for deployment
run: zip release.zip ./* -r

- name: Upload artifact for deployment job
uses: actions/upload-artifact@v3
with:
name: node-app
path: release.zip

deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

steps:
- name: Download artifact from build job
uses: actions/download-artifact@v3
with:
name: node-app

- name: Unzip artifact for deployment
run: unzip release.zip

- name: 'Deploy to Azure Web App'
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: 'nodebb-team-turtles'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_7AE551742B954B0DAD0B614473255649 }}
package: .
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
dist/
yarn.lock
npm-debug.log
!node_modules/nodebb-plugin-composer-default/*
node_modules/
!node_modules/nodebb-plugin-composer-default/
!node_modules/nodebb-theme-harmony/
setup.sh
sftp-config.json
config.json
jsconfig.json
Expand Down Expand Up @@ -65,8 +69,6 @@ coverage
*.log
test/files/normalise.jpg.png
test/files/normalise-resized.jpg
package-lock.json
/package.json
*.mongodb
link-plugins.sh
test.sh
Expand Down
7 changes: 7 additions & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"undef": true,
"unused": true,
"globals": {
"MY_GLOBAL": true
}
}
2 changes: 1 addition & 1 deletion .mocharc.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
reporter: dot
timeout: 25000
exit: true
bail: true
bail: false
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
**Developers:**
Shanting Hou,
Sofia Reyes Franco,
Guanjie Cheng,
Amanda Lu

[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/ithVU1OO)
# ![NodeBB](public/images/sm-card.png)

[![Workflow](https://github.com/CMU-313/NodeBB/actions/workflows/test.yaml/badge.svg)](https://github.com/CMU-313/NodeBB/actions/workflows/test.yaml)
Expand Down
159 changes: 159 additions & 0 deletions UserGuide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# How to Use the New Features

## User Story 1: As a student, I want to be able to create topics anonymously, so that I feel comfortable asking questions without judgment.

### 1. Feature Overview
- **Feature Name**: Anonymous Checkbox for Topic Creation
- **Purpose**: This feature allows students to create topics anonymously, which encourages participation by providing a safe space for users who may feel hesitant or intimidated to ask questions openly. It fosters an inclusive environment within the Q&A system, enhancing student comfort and participation
- **Coder**: Shanting Hou

### 2. Steps to Use the Feature
1. **Step 1**: Navigate to the categories page and click on the Q&A category.
2. **Step 2**: Once in the Q&A category page, click the button to create a new topic.
3. **Step 3**: In the topic creation interface, locate the "Post Anonymously" checkbox.
4. **Step 4**: If you wish to post anonymously, check the "Post Anonymously" checkbox before submitting your topic.
5. **Step 5**: Submit the topic.
<img width="309" alt="Screenshot 2024-09-23 at 3 53 11 PM" src="https://github.com/user-attachments/assets/d9e6f989-b5f2-43f2-9542-acef73ad03f0">
<img width="900" alt="Screenshot 2024-09-17 at 6 31 47 PM" src="https://github.com/user-attachments/assets/ced374cd-8c57-4a50-8d84-380ceab66be2">

7. **Expected Result**:
- The "Post Anonymously" checkbox will appear as an option in the topic creation interface. By default, it will be unchecked.
- If the user chooses to post anonymously by checking the box, the topic will be published without associating the user's profile or icon. Instead, it will display an anonymous user icon.
- Internally, the topic will still be tied to the user, allowing the system to send notifications about responses or interactions with the post, even though it appears anonymous to other users.

### Automated Tests

### 1. Location of Automated Tests
**Location**: Test/topics.js, lines [80-107](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L80-L107)

### 2. What is Being Tested
- **Tested Features**: The functionality of the "Post Anonymously" checkbox and the behavior of the isAnonymous field in topic creation.
- **Test Type**: Unit tests and back-end tests were implemented to ensure the feature works as intended.

### 3. Why the Tests Are Sufficient
- **Coverage Justification**:
The tests provide comprehensive coverage of the anonymous posting feature, focusing on both typical and edge-case scenarios. The default behavior test ensures that when the "Post Anonymously" checkbox is not selected, the isAnonymous field defaults to false, confirming non-anonymous posting works correctly. The anonymous checkbox test verifies that selecting the checkbox sets isAnonymous to true, ensuring anonymous posts are handled correctly in the back end while maintaining user anonymity in the interface. Additionally, tests ensure back-end data integrity, confirming anonymous posts are linked to users for notifications without revealing their identity publicly. Edge cases like rapidly toggling the checkbox and ensuring consistency across browsers are also covered. Front-end tests were excluded because the focus was on back-end logic and data integrity, with UI behavior verified through manual testing. Since the critical functionality involves handling anonymity in the back end, server-side validation was prioritized.

---

## User Story 2: As a instructor I want to mark a student’s question as resolved, so it’s clear to other students that the issue has been addressed.

### 1. Feature Overview
- **Feature Name**: 'Mark As Resolved' button in dropdown menu
- **Purpose**: This feature allows users to mark a topic as resolved. Once a topic is resolved, it updates the topic's status both in the backend and the frontend, displaying a "Resolved" badge. This feature improves forum organization by clearly indicating which topics have been addressed, helping users easily identify open issues or questions.
- **Coder**: Amanda Lu

### 2. Steps to Use the Feature
1. **Step 0**: Since this change requires connection with the front-end repo, user need to download our front end repo to the same file path, and then change the `install/package.json` file. Look up `nodebb-theme-harmony` and change this line to: `"nodebb-theme-harmony": "file:../nodebb-frontend-f24-the-turtles",` then do `npm install`, and `./nodebb build tpl`.
2. **Step 1**: Navigate to the forum topic you want to mark as resolved.
3. **Step 2**: Click on the dropdown menu to reveal additional options.
<img width="235" alt="Screen Shot 2024-10-03 at 17 09 02" src="https://github.com/user-attachments/assets/ab2fb858-0b88-4bd2-859b-f3ae271c0d27">

4. **Step 3**: Click on the "Mark As Resolved" button from the dropdown menu. **After click, please manually click the REFRESH button to see the changes.**
5. **Step 4**: Then a card displaying resolve confirmation will appear, user should click on "Yes, Mark As Resolved" button.
<img width="315" alt="Screen Shot 2024-10-03 at 17 14 52" src="https://github.com/user-attachments/assets/be5c8438-8a87-4e63-9677-035bd67f9704">

6. **Expected Result**: The topic will be marked as resolved, and a "Resolved" badge will appear next to the topic title, indicating its status. Additionally, the status will be updated in the backend, and the change will be reflected in the forum interface.
<img width="758" alt="Screen Shot 2024-10-03 at 17 13 24" src="https://github.com/user-attachments/assets/0948218e-d4e4-478a-9b9f-29462c718907">

### Automated Tests

### 1. Location of Automated Tests
- **Location**: File: `test/topics.js`, Lines: [335-369](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L335-L369), [1039-1060](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L1039-L1060).

### 2. What is Being Tested
- **Tested Features**:
- Default topic as unresolved.
- Admin(instructor) should be able to mark topic as resolved.
- Verifies that the topic can be marked as resolved using apiTopics.resolve().
- **Test Type**: Unit tests and backend tests

### 3. Why the Tests Are Sufficient
- **Coverage Justification**:
I believe the tests are sufficient for covering the changes because they address the key behaviors related to the "resolved" field:
- The [first test](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L335-L369) checks that when a topic is initially created, the "resolved" field is undefined. This ensures that no unintended default values are assigned to the field during topic creation, which aligns with the expected functionality.
- The [second test](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L335-L369) verifies that the system correctly allows marking a topic as resolved by setting the "resolved" field to 1. It ensures that the update mechanism works as intended and that the field can be retrieved with the correct value after the change is made.
- The tests in line [1039-1060](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/f24/test/topics.js#L1039-L1060) cover both the creation of a new topic and updating its "resolved" status. They validate the core functionality of marking topics as resolved and ensure the changes work end-to-end. The state is checked after the update, confirming correct behavior.

---

## User Story 3: As a student, I want to be able to privately post content to Instructors, so that sensitive or personal information will not be revealed to everyone

### 1. Feature Overview
- **Feature Name**: Privacy Toggle for Topic Creation
- **Purpose**: This feature allows students to privately communicate sensitive or personal information to their instructors without exposing it to their peers or the public. It also enhances the purpose of the Q&A forum as it allows students to ask more personalized questions (eg, questions involving code for example, or performance in the course), without it being shown to other students. Without this feature, students would be limited in scope to what kind of questions they can ask and what details they can provide in their posts.
- **Coder**: Guanjie Cheng

### 2. Steps to Use the Feature
1. **Step 1**: Register Two New Users, User A and User B (these are regular users, not admins)
2. **Step 2**: Login as User A.
3. **Step 3**: Go to the Q&A category.
4. **Step 4**: Click New Topic.
5. **Step 5**: Fill in Topic title and Topic body
6. **Step 6**: In the top right, next to "Post Anonymously" click the button that is currently an open lock and says "Public". This should toggle the button to be a closed lock icon and say "Private"
**Expected Result**:
![Screenshot 2024-10-09 at 6 11 54 PM](https://github.com/user-attachments/assets/a42866e5-0e09-41d1-bf72-07792a6e6bfa)
8. **Step 7**: Click Submit
9. **Step 8**: Go back to Q&A section and see that the topic is successfully created by User A
**Expected Result**:
![Screenshot 2024-10-09 at 6 13 15 PM](https://github.com/user-attachments/assets/19f97100-3e91-4959-bd44-d71f15358903)
11. **Step 9**: Log out and Log in as User B
12. **Step 10**: Go to the Q&A section and see that there are no topics created, as user B does not have administrative privileges thus unable to see User A's private topic
**Expected Result**:
![Screenshot 2024-10-09 at 6 15 06 PM](https://github.com/user-attachments/assets/2034a618-3579-4d1c-b2ae-6f24365b6879)
13. **Step 11**: Create a Public topic and a Private topic as User B and go back to the Q&A to see both topics.
**Expected Result**:
![Screenshot 2024-10-09 at 6 20 42 PM](https://github.com/user-attachments/assets/112f636b-1614-4819-9387-bed478ba9643)
14. **Step 12**: Log out and Log in as User A and go to the Q&A category. See how User A can only see its own Private topic and User B's public topic and not User B's private topic.
**Expected Result**:
![Screenshot 2024-10-09 at 6 22 28 PM](https://github.com/user-attachments/assets/afde2e49-1669-4dc2-a668-d2f87eddd493)
15. **Step 13**: Log out and log in as an Administrator and go to the Q&A category. See how the administrator can see all topics created.
**Expected Result**:
![Screenshot 2024-10-09 at 6 23 36 PM](https://github.com/user-attachments/assets/b546ac41-9d31-4898-8101-d923c15fa730)


### Automated Tests

### 1. Location of Automated Tests
- **Location**: The tests can [be found in test/topics.js here](https://github.com/CMU-313/nodebb-f24-the-turtles/blob/838f17a0a9009a5c6f7147dcf44132451641263e/test/topics.js#L269-L332)
- **Note**: The addition of the additional field in the database causes the csrf token to be invalidated when running other tests regarding topic posting. It is unclear why adding a field invalidates such a token as the additional field has also been added to documents that specify the structure of body objects being passed around.

### 2. What is Being Tested
- **Tested Features**:
- Information on if a topic was created as public is accurately reflected in the backend
- Information on if a topic was created as private is accurately reflected in the backend
- Filtering of topics based on user privileges.
- **Test Type**: Unit tests.

### 3. Why the Tests Are Sufficient
- **Coverage Justification**: These tests are ultimately sufficient because they comprehensively cover the core functionality of privacy labeling in topic creation, and privilege-based filtering, which are the features that I included. First, by testing both the default public behavior and the explicit marking of topics as private, I ensure that the system correctly handles all possible paths for topic creation. Also, by validating that the correct privacy information is included in the database, it guarantees that subsequent operations based on this data, such as filtering, will have the correct information passed to them for further operations. The filtering test, which differentiates between admin and non-admin users, ensures that only authorized users can view private topics, verifying that the privilege-based access control works as intended.

## User Story 4: As an instructor, I want to pin important posts at the top of the Q&A section so that students can easily see relevant announcements or information.

### 1. Feature Overview
- **Feature Name**: Pin Button
- **Purpose**: The pin feature allows instructors to highlight critical information, such as announcements or key instructions, by pinning important posts to the top of the Q&A section. This ensures that these posts remain visible and do not get lost amidst regular discussions, enhancing the organization and overall learning experience for students.
- **Coder**: Sofia Reyes Franco

### 2. Steps to Use the Feature
1. **Step 1**: Navigate to the categories page and click on Q&A.
2. **Step 2**: In the Q&A section, select the post or topic you want to pin.
3. **Step 3**: Click on Topic Tools at the top of the page or within the post.
4. **Expected Result**: Choose Pin Topic from the list of options to pin the post.

### Automated Tests

### 1. Location of Automated Tests
- **Location**: File: tests/topic.js Lines: 691-702

### 2. What is Being Tested
- **Tested Features**: These tests verify that the server correctly updates the topic object when an instructor pins a post, ensuring that the pin functionality works as intended and that the posts are appropriately sorted on the front end.

### 3. Why the Tests Are Sufficient
- **Coverage Justification**: The automated tests cover user interaction with the pin button, ensuring that the pinning and unpinning functionality operates seamlessly. The tests also validate the correct sorting of pinned posts at the top of the page and handle edge cases where multiple posts are pinned or unpinned.

---


# Author(s)
- **Names**: Shanting Hou, Sofia Reyes Franco, Guanjie Cheng, Amanda Lu
Binary file added dump.rdb
Binary file not shown.
11 changes: 10 additions & 1 deletion install/data/categories.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,14 @@
"color": "#ffffff",
"icon" : "fa-question",
"order": 3
},
{
"name": "Q&A",
"description": "Got a question? Ask and we'll answer!",
"descriptionParsed": "<p>Got a question? Ask and we'll answer!</p>\n",
"bgColor": "#e95c5a",
"color": "#ffffff",
"icon" : "fa-question",
"order": 5
}
]
]
7 changes: 7 additions & 0 deletions node_modules/nodebb-plugin-composer-default/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions node_modules/nodebb-plugin-composer-default/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions node_modules/nodebb-plugin-composer-default/controllers.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading