An e-commerce application built exclusively for books using MERN stack.
Clone this repository. You will need node
and npm
installed globally on your machine.
Installation:
npm install
To Start Server
npm start
Visit app on your browser at:
localhost:3000
- UI Library: React JS
- CSS library: Krypton UI
- Routing: react router v6
API source code can be found here
- User, Cart, Wishlist, Auth: React useReducer + useContext
- User Sign Up
- User Login
- Persist logged-in state with localStorage
- Edit user profile
- Add items to cart
- Remove items from cart
- Update quantity on individual items
- Add items to wishlist
- Remove items from wishlist
- Move items to cart
- Filter books by genre, language, availability, rating etc.
- Sort books by price and rating
- Toast message on every update to cart and wishlist
- Protected Routes
- Redirect to login for unauthenticated users
- Custom form validation
- Authentication with JWT
- Persist previous login session with localStorage
- 404 page for incorrect route handling
/
- home/books
- books listing/books/:bookId
- book details/login
- login/signup
- register
Follwing routes require user authentication:
/cart
- user cart/wishlist
- user wishlist/profile
- edit user profile, logout
- Logo: books by ProSymbols from the Noun Project
- Icons: React icons, Font Awesome