/SPAapp

Single Page Application using React

Primary LanguageJavaScript

Welcome to the SPA app [FRONTEND]

For the [BACKEND] project go here: https://github.com/koriditmeyer/ecommerceBackendMVC

🌐 Live version

https://amazon.ditmeyer.com/

(with more than +170 000 amazon products)

💻 Technologies Used

"React" "Vite" JavaScript Node JS tailwindcss

"React Router" React Redux React Redux Persist swiper heroicons React Icons React Scroll Framer Motion React Toastify React Loading Skeleton React Query Axios

Git GitHub

💼 Technical Elements

18/04/24

  • Migrate from Firebase to Mongo DB database with a backend build with Node JS to manage users, products, carts...
  • Use of React Query to handle queries to optimise cache and get loading and error states. Use of Axios to fetch the data.
  • Implement loading skeleton with react-loading-skeletons.
  • Add a product pagination
  • Add a category filter to products search
  • Add admin panel
  • Add a gallery to products
  • Add a custom made progress bar with the use of a reciprocal function with time steps adjustments for smoother progress -> It allows to have a smooth progress bar even if the loading time is unknown (the backend does not send the data by chunks)

23/01/24

  • Refactor the router to use React-Router-DOM v6.4. For each route who need it: Implement the data fetch with loader function / Implment the error component in case of incorrect fetch or other errors.
  • With the new version of React-Router-DOM, implement page transition with Framer-Motion and a global spinner icon.
  • Implement the navigation with protected routes and role base authorization wth a router middleware
  • Implement toast to inform user of action with React-toastify

15-16/01/24

  • Add login and registration pages
  • Change context implementation of the store from React to React Redux
  • Implement the context persistance with Redux Persist library
  • Add pages and left side menu transition with Framer Motion

12/01/24

  • Create left side menu
  • Implement responsiveness of the website for all the pages

10/12/23

  • Change the behaviour of queries to fetch data from firebase.
  • Use a .env file to store the Firebase credentials
  • Implement a new global context named CartContext to globally manage the orders and cart status (add products, remove product, clear, update)
  • Implement several pages to the e-commerce website: homepage, item, search results, cart, checkout (with user form), order complete
  • When submitting an order, create a new order in Firebase with order details
  • Use of swiper for the carousel on the home page
  • Update the style of the e-commerce using tailwindcss to look like the Amazon website (inspired from https://www.youtube.com/watch?v=pnnblIo1iO0 )

14/11/23

  • Organise navbar, use of "React Router" to display API data and go into detail, categories
  • Fetch data from API

26/10/23:

  • Use of "React" with "Vite" to build the components, props
  • Use of Tailwind CSS to build the SPA

Future implementations (v1)

  • Create left side menu
  • Create login and registration page
  • Modify checkout page
  • Create a user page and order page
  • add favorite

Future implementations (v2)

  • Use Redux to implement the context
  • Use Axios to fetch API and loading bar
  • Use Mongo DB as DB and fetch API from Mongo DB
  • Use Node and Mongo DB to manage users and log in
  • Create a filter bar for queries
  • Add gallery to products
  • Add stripe connectivity
  • Connect react redux to backend