Challenge Overview

This is a Cloud Hub challenge to add registration and login using JWT tokens to an existing React-Redux single page application with an existing Node.js API (see doc in forum for app). We have explored using the Auth0 service to manage this process, but are unsure if it is the right solution moving forward since we would like to have control over the user interface and keep the user data within our system.

Requirements (all npm packages linked to are already included in the package list)

  1. Add Register, Login, and Logout functionality using a JWT token - project organization has been setup for Redux's actions and reducers
  2. A separate Login page that utilizes the LoginForm component
  3. use formsy-react to easily create the form and formsy-react-components for simple form elements
  4. Implement the logout button in the header.
  5. All added JavaScript must pass the included eslint specifications (see Airbnb's Style Guide for more information) - run "npm run lint" to test (Sublime and Atom editors also have eslint plugins).

Notes

  • The Routes component has been split out in order to make it easier to wrap in a Higher Order Component if needed.
  • ES6 syntax is preferred, as Babel has been setup to handle transpiling the syntax to the current JavaScript standard.
  • ES7 may be used to create a changeHandler for use as a decorator for inputs, if desired.
  • If using Auth0, sign up for a free trial Auth0 account and create a new Single Page App that uses React and a Node.js API. Please document in your readme or submission.txt any/all features used for us to determine potential montlhly cost for the service.
  • If using Auth0, please explain why you chose to use the service in your video and/or submission.txt file.


Final Submission Guidelines

  1. Any additions or modifications to the code project pass on "npm run lint".
  2. Provide your code and documentation in a single zip file.
  3. The bulk of your documentation should be in the Readme.md and you should assume that this will be open source so make sure you cover all the steps to set up,  If you have specific information that should not be included in a public readme (like a heroku link or links to your video) put them in a file called submission.txt and they will be omitted from the project if it is open sourced.
  4. Provide a quick video of your solution in action (feel free to annotate your video if you are not comfortable with spoken English or don’t like the sound of your own voice). Video may be private on youtube or added to the submission files.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30053410