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.