Note: Do not clone or fork, download as ZIP.
- Downlaod as ZIP from https://github.com/riteshf/products-app-boiler.git inside your masai-repo
- unzip.
- navigate to the folder
cd products-app-boiler
- npm install
- npm start
- Make sure your
json-server
is running on port8080
,db.json
file is provided.
- Create the following APP: Products Routes WebApp using the Provided Boilerplate.
Notes:
- Make sure you start
json-server
on8080
port with provideddb.json
file, then only you will be able to see data on this website. - Libraries are not installed, you need to install all the required libraries yourself.
- Use of Redux for this assignment is Mandatory.
- Use of Redux to perform this is mandatory, else you will get zero marks.
- Use the given action types and initial State for each reducer.
/
:Home
is a protected route, accessible post login.- App should redirect to
/login
:Login
page as soon as he visits the/
: Home Url. - Post
Login
, user should be re-directed to/
: Home Page. - Only Post login User should fetch
/products
and/cartItems
and populate at required place. - Products
- User Should be able to Add Product to cart, if that product is not already existing in
/cartItems
.- Initial Count is 1
- Increment/Decrement Cart Item Count by Matching Product ID
- Remove Product from Cart only if Added.
- User Should be able to Add Product to cart, if that product is not already existing in
- Reset should reset the state to default/initial state.
- For login, use (reqres.in)[https://reqres.in]
-
Understanding Component Structure
-
Redux reducers to reuse
-
Understanding Data Structure
-
- Initial Products should be fetched using json-server only after user logs in.
- cartItems has following operations, accessible post login
- Add
- Delete
- Update Count
-
Note -
Make sure you use only the given data and dont create new data. Changing data might result in giving you zero marks
-
- You need to Submit Github Link as well as Deploymnet link.
- Deployment is Mandatory.
- Make sure you use masai github account provided by MasaiSchool(submit link to correct folder of your repository on github).
- Make Sure you have submit home page link.
- Do not use Global CSS, instead use
<componentName>.module.css
convention for CSS or as UI Library. - Do Not Remove
data-cy="xxxx"
from anywhere, this are used by testing tools to test your code, removal of this will lead to low score. - Make sure you use only the given components and dont create new files and folders as chaging component name, structures might result in giving you zero marks
- Make sure you use only the given data and dont create new data, as chaging data might result in giving you zero marks.
Note - This might not be all the things, you are free to use other components.
Try running npm run cypress:run
post completion of assignment, it will generate marks.json
which will have your marks.