FreeCodecamp Back End Development Certification Dynamic Web Application Projects 01 - Build a Voting App
These are the given user stories:
Unauthenticated users can
- See and vote on everyone's polls.
- See the results of polls in chart form.
Authenticated users can
- Keep their polls and come back later to access them.
- Share their polls with friends.
- See the aggregate results of polls.
- Delete unwanted polls.
- Create a poll with any number of possible items.
- Can see and vote on everyone's polls.
- See the results of polls in chart form.
- Create a new option within an existing poll.
The app uses the Clementine.js framework along with the following packages:
- "body-parser" - Makes incoming request bodies available under the req.body property.
- "connect-ensure-login" - Ensures that the user is logged in.
- "cookie-parser" - Maintains login across pages
- "ejs" - Used to build non-interactive pages on server
- "express" - Web framework for routing, etc
- "express-session": - Session middleware
- "mongodb" - Document-oriented database for poll and user login data
- "passport" - User authentication
- "D3" - Data visualization to render poll results as a bar chart
All user stories are fulfilled. I would have liked to add the following features but have had to draw a line underneath this particular project to move onto the next:
User input is validated as far as stopping user inputs that will cause errors, but there is no feedback to inform the user why the form has not been submitted.
I may or may not come back to this as my skills develop but it's more likely I will focus on upcoming challenges. Any feedback or criticism is welcome.