Tech Stack: React, TypeScript. Styling: Tailwind, MUI, or CSS/SASS
Pages to Create:
- Home page (list all the products)
- Product page (contain the details of a product)
- Dashboard page
Functionalities for a Visitor:
- Get list of products
- Filter products by categories or price
- Search products by name
- Add products to a cart
- Remove products from a cart
Functionalities for an Admin:
- Add a new product, update info of a product, remove a product
Authentication:
- Implement register and login functionality via email and password
- Protect the routes based on login and admin status
Functionalities for an Admin:
- list all users, delete or block a user.
- list all orders
- Add a new category, update info of a category, remove a category
Form Validation:
- Implement form validation.
If you have a higher skill level and finish the previous requirements before the deadline, you can tackle the following bonus tasks:
-
Messages, show loading, success, and error messages (e.g., when loading products list or adding new product)
-
Implement pagination feature
-
Create a Profile Page (only available if user logs in), implement editing user profile feature (user can change first name, last name)
-
Peer Review:
-
Review the code and implementation of 2 assignments from other participants.
-
Provide constructive feedback and suggestions for improvement.
Please note that the bonus requirements and reviews are optional and can be completed if you have additional time and advanced skills.
Happy coding!