diff --git a/curriculum/challenges/english/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/english/09-information-security/information-security-projects/anonymous-message-board.md index e45d235f20..3a742c091c 100644 --- a/curriculum/challenges/english/09-information-security/information-security-projects/anonymous-message-board.md +++ b/curriculum/challenges/english/09-information-security/information-security-projects/anonymous-message-board.md @@ -8,13 +8,35 @@ forumTopicId: 301568 ## Description
Build a full stack JavaScript app that is functionally similar to this: https://anonymous-message-board.freecodecamp.rocks/. -Working on this project will involve you writing your code on Repl.it on our starter project. After completing this project you can copy your public Repl.it URL (to the homepage of your app) into this screen to test it! Optionally you may choose to write your project on another platform but it must be publicly visible for our testing. -Start this project on Repl.it using this link or clone this repository on GitHub! If you use Repl.it, remember to save the link to your project somewhere safe! +Working on this project will involve you writing your code using one of the following methods: + +- Clone this GitHub repo and complete your project locally. +- Use our repl.it starter project to complete your project. +- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. + +When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your projects source code in the `GitHub Link` field.
## Instructions
+1. Set `NODE_ENV` to test without quotes when ready to write tests and DB to your databases connection string (in `.env`) +2. Recommended to create controllers/handlers and handle routing in `routes/api.js` +3. You will add any security features to `server.js` + +Write the following tests in `tests/2_functional-tests.js`: + +- Creating a new thread: POST request to `/api/threads/{board}` +- Viewing the 10 most recent threads with 3 replies each: GET request to `/api/threads/{board}` +- Deleting a thread with the incorrect password: DELETE request to `/api/threads/{board}` with an invalid `delete_password` +- Deleting a thread with the correct password: DELETE request to `/api/threads/{board}` with a valid `delete_password` +- Reporting a thread: PUT request to `/api/threads/{board}` +- Creating a new reply: POST request to `/api/replies/{board}` +- Viewing a single thread with all replies: GET request to `/api/replies/{board}` +- Deleting a reply with the incorrect password: DELETE request to `/api/threads/{board}` with an invalid `delete_password` +- Deleting a reply with the correct password: DELETE request to `/api/threads/{board}` with a valid `delete_password` +- Reporting a reply: PUT request to `/api/replies/{board}` +
## Tests @@ -22,7 +44,7 @@ Start this project on Repl.it using