- About the Project
- Getting Started
- Authors
- Future Features
- Contributing
- Show your support
- Acknowledgements
- License
This project is an e-commerce platform designed to provide users with a seamless shopping experience. Users can explore a diverse range of products, access detailed information about selected items, browse through a catalog of images to customize the main view, add items to their shopping cart, review and manage cart contents, and conveniently remove items from the cart.
- Products listing
- Product details view
- Show related products
- Increase and decrease product quantity
- Add product to cart
- Cart page
- View cart details
- Delete product from cart
- Checkout page
Redux Toolkit is a set of tools that simplifies the Redux development experience. In this project, we've adopted Redux Toolkit for its built-in utilities, including the use of slices for reducer logic and an opinionated store setup that reduces boilerplate code.
Our Redux implementation follows a structured organization to keep the codebase clean and maintainable. Here's a brief overview of the key directories:
src/Redux/Slices
: Contains Redux slices, each representing a specific feature.src/Redux/Store
: Houses the Redux store configuration.
The Redux store is configured in the src/app
directory. It utilizes the configureStore
function from Redux Toolkit, which includes default middleware and additional configuration options. This setup ensures a consistent and scalable state management solution for our application.
In this project, we have adopted the use of createAsyncThunk
from Redux Toolkit for handling asynchronous actions, particularly for data fetching. This decision offers several advantages, including simplified management of loading, success, and error states associated with asynchronous operations.
Key Benefits
-
Loading States:
- With
createAsyncThunk
, we can easily manage loading states in our application. This is especially beneficial when fetching data from an API, as it allows components to display loading indicators or handle UI changes based on the fetch status.
- With
-
Error Handling:
- The built-in error handling provided by
createAsyncThunk
simplifies the process of managing errors during data fetching. We can gracefully handle and display error messages to users, improving the overall user experience.
- The built-in error handling provided by
-
Redux DevTools Integration:
createAsyncThunk
integrates seamlessly with the Redux DevTools extension, providing a clear and detailed view of asynchronous actions, including their lifecycle and payload. This aids in debugging and understanding the flow of data fetching in the application.
Leveraging Redux Toolkit, specifically slices and the pre-configured store, has streamlined our state management process. The intuitive API and reduction in boilerplate code contribute to a more maintainable and efficient Redux implementation for our project.
To get a local copy up and running, follow these steps.
In order to run this project you need:
- A browser (e.g. chrome or Firefox)
- An IDE (e.g. Visusal Studio Code)
- npm
- Terminal
To clone this repository to your desired folder, follow the steps below:
Using the command line
- Use the following commands
cd my-folder
git clone https://github.com/Ezzywealth/shop.git
Using GitHub Desktop app
-
Follow the steps below
- Visit this link "https://github.com/Ezzywealth/shop"
- Click the green button labelled "code"
- Select the "Open with GitHub Desktop" option
- After the GitHub Desktop add opens, click the "clone repo" button
To run the project, execute the following command:
- npm install
- npm run dev
You can deploy this project by:
- visit Vercel.com
- Register to get an account if you don't have one
- Click on Add new project
- Select project options
- Select lendsqr repo
- Deploy using vercel
👤 Ezekiel Udiomuno
- GitHub: @Ezzywealth
- Twitter: @Ezzywealth
- LinkedIn: Ezekiel Udiomuno
- [Checkout page]
- [About page]
- [Contact page]
- [Payment gateway]
Contributions, issues, and feature requests are welcome!
If you like this project, give it a star
and let me know what you like in
particular.
We would like to thank...
- Sippy for the opportunity to take the assessment test.
This project is MIT licensed.