Likable/Likeable App
You are going to create a full stack application with user authentication created with Node, React, Express, Mongoose & Mongodb that allows users to log in and vote for their favorite spelling of your app. Feel free to use a different word.
Requirements:
- A user will see a login/signup page that is required to visit the other page of the application.
- Users can sign up, log in, and sign out.
- Users will be taken to the main page after they sign up or log in.
- The main page will display the total number of votes for their favorite spelling of likable/likeable.
- The main page will have an upvote button for each.
- A user may upvote once.
- A user can change their vote.
You will need the ability to GET
, POST
, and PUT
Find a friend or two to help you work through this assignment.
Suggestions
-
Consider making the following models:
- user.js
- vote.js
-
To practice for the next project that will include more complexity, consider using 2 context providers. One that manages the authentication/user functionality of the app, and another that manages the upvotes/downvotes.
-
Use
useContext
if you're going to use context.
This is a fully functional front-end and back-end application including a persistent database and user authentication. It may seem simple, but it's a big deal.