The project must be implemented on the following stack:
- React 16+
- Redux + Redux toolkit (slice)
- Typescript
- React Router Dom v6
- Any UI library or libraries can be used
- The layout should be px perf
- Validations:
- Phone number
- All fields must be filled
- Validation when characters are entered
- There must be an input with a phone number with masks, and a selection with different countries, when choosing a country, the mask changes (empty characters are marked as [ _ ], brackets and the country code are left as part of the mask).
- The plate must be dynamically calculated times depending on the height of the user's screen
- We store all data at the front, the default sorting is ASC by date
- Working pagination is expected
The frameworks/libraries/modules used in the project
- React + Typescript
npx create-react-app my-app --template typescript
- Redux Toolkit
npm install @reduxjs/toolkit
- Material UI
npm install @mui/material @mui/styled-engine-sc styled-components
- Formik
npm install formik --save
- React-Phone-Input-2
npm install react-phone-input-2 --save
- Yap
npm install -S yup
- Inputmask
npm i inputmask
- Libphonenumber
npm install libphonenumber-js --save
- gh-pages
npm install gh-pages --save-dev