Facebook Pixel

Generate Password

React.js
medium
mins

Build a random password generator using React that allows users to create secure passwords based on their selected criteria.

Things to do

  • Choose the desired password length (between 1 and 20).
  • Select the character types to include:
    • Lowercase letters
    • Uppercase letters
    • Numbers
    • Symbols
  • Generate a random password based on the selected options.
  • Display the generated password.

Required Features

  1. Password Length
  • Minimum password length: 1
  • Maximum password length: 20
  • Default length should be
const [length, setLength] = useState(4);
  • If length exceeds 20, limit it to 20 and show an error message :"Max length is 20".
  1. Character Type Selection Let user choose which character types to include via checkboxes:
  • Lowercase letters (default: checked)
  • Uppercase letters (default: unchecked)
  • Numbers (default: unchecked)
  • Symbols (default: unchecked)
  1. Input Validation
  • If no character types are selected, show an error message "Select at least one option".

  • Prevent generating a password if length is 0 or no character types are selected, show an error message "Length cannot be Empty or 0"

Testing Instructions

Please use the following data-testid attributes in your React component:

  • length-input → for the input length <input type="number" />
  • lowercase-checkbox → for the "LowerCase-Checkbox" <input type="checkbox" />
  • uppercase-checkbox → for the "Uppercase-Checkbox" <input type="checkbox" />
  • number-checkbox → for the "Number-Checkbox" <input type="checkbox" />
  • symbols-checkbox → for the "Symbol-Checkbox" <input type="checkbox" />
  • generate-button → for the "Convert" <button />
  • result → for the generated password result`
  • error-message → for the Error Message

Reference UI

generatePassword

Preview what you need to build

Companies:

nvidia
twitch
flipkart
meesho

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.