- The frontend interacts with mock data stored locally in the project. In the full-stack project, this data will be connected to the backend.
Please, do not spend time on creating your own server. use the files that are in the ./public/mock/* We have the data ready for you. all you need is send an HTTP request to the resource. we also have an example on how to fetch all products and how to add one product. use them as a reference.
Tech Stack: React, TypeScript, and Redux/Redux Toolkit. Styling: CSS/SASS or MUI.
Data Sources:
- Books: id, image, title, description,author, isAvailable, bookCopiesQty
- Borrows: id, borrowerId, bookId, borrowDate, returnDate, dueDate
- Category: id, name
- Authors: id, name
- Users (as visitor or admin): id, firstName, lastName, email, password, role (visitor or admin)
Pages to Create:
- Home page with a list of books
- Page to show detailed of book
- Admin Page
Functionalities for a Visitor:
- List of books
- Filter books by status
- Search by title or by author
- Borrow a book
- Return a borrowed book
Functionalities for an Admin:
- Add a new book, update info of a book, remove a book
Deployment
- Deploy the application to Netlify and update the README file with the project information
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 borrows
- Add a new author, update info of an author, remove an author
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 books list or adding new books)
-
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!
Option 2: E-commerce Website : Glow :- https://glow-e-commerce.netlify.app/
Tech Stack: React, TypeScript, and Redux/Redux Toolkit. Styling: CSS/SASS or MUI.
Data Sources:
- Products: id, name, description, categories, variants, sizes
- Categories: id, name
- Orders: id, productId, userId, purchasedAt
- Users: id, firstName, lastName, email, password, role (visitor or admin)
Pages to Create:
- Home page (list all the products)
- Product page (contain the details of a product)
- Admin 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!