Skip to content

nemanjam/redux-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redux Ecommerce

Simple ecommerce website made with React Hooks and Redux.

Demo and Codesandbox

  • Live demo is available here: Demo
  • Codesandbox is available here: Codesandbox

Features

  • Home, Products, Product Details, Liked, Cart, Login, Profile and Error pages
  • State management with Redux
  • Responsive design with Bootstrap
  • Products pagination with infinite scroll
  • Insert Advertisements at every N products
  • Products sorting by price, weight, size asc and desc
  • Product filtering by brand and color
  • Ability to like the products (wishlist)
  • Product Details page with image magnify
  • Cart with increment, decrement and remove product abilities
  • Local Login/Register with Formik validation
  • Login with Google OAuth, client side auth
  • Profile page is behind protected route
  • Product card with loader for image loading
  • Toast messages for adding, liking a product, login/logout with Google/Local and network errors
  • Loading state with spinner with text or default spinner
  • Two fake backends with Promise and Axios-Mock-Adapter strategies
  • Config file with settable pagination page size, advertisement index and fake backend delay
  • Dynamic data creation and randomizing with Faker
  • Dynamic carousel width with React Container Dimensions and image cropping with object-fit:cover

Libraries used

  • React with Hooks, Redux, Redux Thunk
  • React Bootstrap with Cosmo theme
  • React Infinite Scroller, React Image Magnify, React Google Login, React Container Dimensions
  • Axios, Axios Mock Adapter, Formik, Faker

Installation and running

  • npm install
  • npm run start app wil be loaded on http://localhost:3002

Screenshots

Screenshot1

Screenshot2

Screenshot3

Screenshot4

Screenshot5

Screenshot6

Screenshot7

Screenshot8

Github pages deployment

# must use HashRouter
# set "homepage": "/redux-ecommerce/#", in package.json

# must have in .env
SKIP_PREFLIGHT_CHECK=true

# must have this env var in terminal
export NODE_OPTIONS=--openssl-legacy-provider

# redeploy
npm run deploy