/Nxt-Trendz-Authentication-2

In this project, let's build Nxt Trendz app with authentication by applying the concepts

Primary LanguageJavaScript

In this project, let's build Nxt Trendz app with authentication by applying the concepts we have learned till now.

Login Page Link : https://nxttrendzptwo.ccbp.tech/login

username: rahul

password: rahul@2021

Refer to the image below:


nxt trendz authentication desktop output

Design Files

Click to view

Set Up Instructions

Click to view
  • Download dependencies by running npm install
  • Start up the app using npm start

Completion Instructions

Functionality to be added

The app must have the following functionalities

  • When an unauthenticated user tries to access the Home Route, Products Route or Cart Route, then the page should be redirected to the Login Route
  • When an authenticated user tries to access the Home Route, Products Route or Cart Route, then the page should be navigated to the respective route
  • When an authenticated user tries to access the Login Route, then the page should be redirected to the Home Route
  • When the Logout button is clicked, then the page should be navigated to the Login Route
API Requests & Responses

loginApiUrl

API: https://apis.ccbp.in/login

Method: POST

Description:

Returns a response based on the credentials provided

Sample Success Response

{
  "jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InJhaHVsIiwicm9sZSI6IlBSSU1FX1VTRVIiLCJpYXQiOjE2MTk2Mjg2MTN9.nZDlFsnSWArLKKeF0QbmdVfLgzUbx1BGJsqa2kc_21Y"
}

Sample Failure Response

{
  "status_code": 404,
  "error_msg": "Username is not found"
}
Components Structure
nxt trendz authentication login and home component structure breakdown

nxt trendz authentication products and cart component structure breakdown

Implementation Files

Use these files to complete the implementation:

  • src/App.js
  • src/components/LoginForm/index.js
  • src/components/Header/index.js
  • src/components/Header/index.css
  • src/components/Products/index.js
  • src/components/Products/index.css
  • src/components/Cart/index.js
  • src/components/Cart/index.css

Quick Tips

Click to view
  • You can use the box-shadow CSS property to apply the box-shadow effect to containers

      box-shadow: 0px 4px 16px 0px #bfbfbf;
    

    box shadow
  • You can use the cursor CSS property to specify the mouse cursor to be displayed when pointing over an element

      cursor: pointer;
    

    cursor pointer
  • You can use the below outline CSS property for buttons and input elements to remove the highlighting when the elements are clicked

      outline: none;
    

Important Note

Click to view

The following instructions are required for the tests to pass

  • Home route should consist of / in the URL path

  • Login route should consist of /login in the URL path

  • Products route should consist of /products in the URL path

  • Cart route should consist of /cart in the URL path

  • No need to use the BrowserRouter in App.js as we have already included in index.js

  • User credentials

     username: rahul
     password: rahul@2021
    

Resources

Image URLs
Colors
Hex: #1e293b
Hex: #ffffff
Hex: #475569
Hex: #e6f6ff
Hex: #d7dfe9
Hex: #e2e8f0
Hex: #64748b
Hex: #0b69ff
Hex: #ff0b37
Hex: #0967d2
Font-families
  • Roboto

Things to Keep in Mind

  • All components you implement should go in the src/components directory.
  • Don't change the component folder names as those are the files being imported into the tests.
  • Do not remove the pre-filled code
  • Want to quickly review some of the concepts you’ve been learning? Take a look at the Cheat Sheets.