Welcome to Woode, the coolest furniture e-commerce app on the block! This project is a full-stack MERN (MongoDB, Express, React, Node.js) showcase designed to display full-stack skills. Itβs packed with custom-built features, including a custom API, a JWT-based authentication system, and a sleek UI.
Woode is your go-to online store for stylish furniture. Browse through a variety of furniture pieces, add your favorites to the cart, and complete your purchaseβall while experiencing the seamless integration of React, React Router, and Redux.
- Full MERN Stack: MongoDB, Express, React, and Node.js working together harmoniously.
- Custom API: Calls to my very own custom node API for managing products, orders, authentication, and more. Check the woode API here.
- JWT Authentication: Secure login system using JSON Web Tokens.
- Redux for State Management: Efficient state management with Redux, including reducers and middleware.
- Testing with RTL and Jest: Robust unit and integration testing to ensure everything works smoothly.
Here's the breakdown of the Redux store structure:
store
βββ entities
β βββ auth.js
β βββ cart.js
β βββ entitiesReducer.js
β βββ navigation.js
β βββ products.js
βββ middleware
β βββ activateNotification.js
βββ thunks
β βββ auth.thunks.js
β βββ cart.thunks.js
β βββ products.thunks.js
β βββ user.thunks.js
βββ ui
βββ notifications.js
βββ uiReducer.js
βββ rootReducer.js`
- Add Items to Cart: Easily add your favorite furniture items to the shopping cart.
- Remove Items: Change your mind? Quickly remove items from the cart.
- Update Items: Adjust quantities or update items in the cart as needed.
- Checkout: Smooth checkout process to complete your purchase.
- Authentication: Secure login and registration using JWT and OAuth.
Comprehensive testing with React Testing Library (RTL) and Jest:
- Unit Testing: Ongoing effort to ensure each component works correctly.
- Integration Testing
- Snapshots
The app is hosted on Netlify, making it super easy to access and demo. Check it out: