• Stars
    star
    1,674
  • Rank 27,913 (Top 0.6 %)
  • Language
    JavaScript
  • Created almost 5 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build ECommerce Website Like Amazon By React & Node & MongoDB

React & Node Tutorial - Full ECommerce in 5 Hours [2020]

Welcome to my React and Node tutorial to build a fully-functional e-commerce website in 5 hours. Open your code editor and follow me for the next hours to build an e-commerce website using React and Node.JS.

Demo Website

πŸ‘‰ Demo : https://oldamazona.webacademy.pro

Video Tutorial

πŸ‘‰ Click on this image to watch full 5-hours video of this tutorial

IMAGE ALT TEXT HERE

You Will Learn

  • HTML5 and CSS3: Semantic Elements, CSS Grid, Flexbox
  • React: Components, Props, Events, Hooks, Router, Axios
  • Redux: Store, Reducers, Actions
  • Node & Express: Web API, Body Parser, File Upload, JWT
  • MongoDB: Mongoose, Aggregation
  • Development: ESLint, Babel, Git, Github,
  • Deployment: Heroku
  • Watch React & Node Tutorial

Run Locally

1. Clone repo

$ git clone [email protected]:basir/node-react-ecommerce.git
$ cd node-react-ecommerce

2. Install MongoDB

Download it from here: https://docs.mongodb.com/manual/administration/install-community/

3. Run Backend

$ npm install
$ npm start

4. Run Frontend

# open new terminal
$ cd frontend
$ npm install
$ npm start

5. Create Admin User

6. Login

7. Create Products

Support

Video Tutorials

00:02:00 Part 01- Introduction

It gives you an overview of the tutorial to build an eCommerce website like Amazon.

00:08:26 Part 02- Install Tools

You need to install a code editor and a web browser to start web development. In this part, we will prepare the environment to start coding.

00:12:36 Part 03- Website Template

In this part, you create a web template for the eCommerce website. Alt Text

00:29:47 Part 04- Products List

We will create a list of products as static HTML elements.

00:41:54 Part 05- Create Sidebar

We will create a hamburger menu that shows and hide the sidebar. Also, we design the details page of the products. Alt Text

00:52:39 Part 06- Create React App

This part is about the frontend. We use React library to build the UI elements.

01:01:09 Part 07- Render Products

This is the home page of e-commerce. It shows a list of products. Alt Text

01:06:30 Part 08- Product Details

When the user clicks on a product there should a page to show details about that product. This lesson is all about making an attractive details page. Alt Text

01:30:53 Part 09- Create Node Server

This part is about Node and Express. They are the popular framework to create a web server using JavaScript language. We will create a MongoDB database and save and retrieve the admin user.

01:39:52 Part 10- Fetch Server Data

In this lesson, we use React Hooks to fetch data from the server. We use the axios library to do this job in a modern async/await style.

01:47:55 Part 11- Manage State With Redux

When it comes to handling multiple forms with their data nothing is better than state management. We use Redux in this lesson to handle complex state and keep the app behavior predictable.

02:07:11 Part 12- Add Redux To Details

In this part, we move the details page state to Redux. First, we create reducers then define actions and connect them to the details component.

02:29:23 Part 13- Shopping Cart Screen

Shopping Cart is the heart of any e-commerce website. We focus on creating a user-friendly shopping cart using React and Redux. Alt Text

03:08:11 Part 14- Connect MongoDB

This lesson is about persisting data on the MongoDB database. We use mongoose package to create models and save and retrieve data from the database.

03:21:35 Part 15- Sign In User

We need to register the user before redirecting them to the checkout. In this part, we will create forms for getting user info and save them in the database. Alt Text

03:56:02 Part 16- Manage Products

Admin should be able to define products and update the count in stock whenever they like. This page is about managing ECommerce products. Alt Text

04:38:43 Part 17- Checkout Wizard

In this part, we implement the checkout wizard including sign in, shipping info, payment method, and place order. Alt Text

Only On Udemy

Following parts are on my udemy course. Get it by 90% discount

Part 18- Order Details Screen

It shows all details about an order includeing shipping, payments and order items. Also it is possible for admin to manage orders like set them as delivered.

Part 19- Connect to PayPal

This parts create PaypalButton component to show paypal payment button on the screen. when users click on it, they will be redirected to paypal website to make the payment. after payment users will be redirected to details page of the order.

Part 20- Manage Order Screen

This is an admin page to manage list of orders. Admin can delete an order or set it as delivered.

Part 21- User Profile Screen

When user click on thier name on the header menu, this page appears. It consists of two sections. First an profile update form and second order history.

Part 22- Filter and Sort Products

In the home page, right after header, there is a filter bar to filter products based on their name and description. also it is possible to sort product based on prices and arrivals.

Part 23- Deploy Website on Heroku

This section explains all steps to publish the ecommerce website on heroku. first you need to create a cloud mongodb and the make an account on heroku.

Part 24- Rate and Review Products

This part shows list of reviews by users for each products. also it provides a form to enter rating and review for every single product. also it update the avg rating of each product by user ratings.

  1. index.html
  2. link fontawesome
  3. Rating.js
  4. create stars based on props.value
  5. show text based on props.text
  6. index.css
  7. style rating, span color gold and last span to gray, link text to blue
  8. HomeScreen.js
  9. use Rating component
  10. ProductScreen.js
  11. use Rating component, wrap it in anchor#reviews
  12. list reviews after product details
  13. create new review form to get rating and reviews
  14. index.css
  15. style reviews
  16. ProductScreen.js
  17. implement submitHandler
  18. productActions.js
  19. create saveProductReview(productId, review)
  20. productConstants.js
  21. create product review constants
  22. productReducers.js
  23. create productReviewSaveReducer
  24. store.js
  25. add productReviewSaveReducer
  26. backend
  27. productRoute.js
  28. router.post('/:id/reviews')
  29. save review in product.reviews
  30. update avg rating

Part 25- Upload Product Images On Local Server

Admin shoud be able to uploads photos from their computer. This section is about uploading images on local server ans aws s3 cloud server.

  1. npm install multer
  2. routes/uploadRoute.js
  3. import express and multer
  4. create disk storage with Date.now().jpg as filename
  5. set upload as multer({ storage })
  6. router.post('/', upload.single('image'))
  7. return req.file.path
  8. server.js
  9. app.use('/api/uploads',uploadRoute)
  10. ProductsScreen.js
  11. create state hook for uploading
  12. create input image file and onChange handler
  13. define handleUploadImage function
  14. prepare file for upload
  15. axios post file as multipart/form-data
  16. set image and set uploading
  17. check result

Part 26- Upload Product Images On AWS S3

This section is about uploading images amazon aws s3 cloud server.

  1. create aws account
  2. open https://s3.console.aws.amazon.com
  3. create public bucket as amazona
  4. create api key and secret
  5. past it into .env as accessKeyId and secretAccessKey
  6. move dotenv to config.js
  7. add accessKeyId and secretAccessKey to config.js
  8. npm install aws-sdk multer-s3
  9. routes/uploadRoute.js
  10. set aws.config.update to config values
  11. create s3 from new aws.S3()
  12. create storageS3 from multerS3 by setting s3, bucket and acl
  13. set uploadS3 as multer({ storage: storageS3 })
  14. router.post('/s3', uploadS3.single('image'))
  15. return req.file.location
  16. ProductsScreen.js
  17. on handleUploadImage set axios.post('api/uploads/s3')
  18. check result on website and s3

Summary

In this tutorial, we have made an eCommerce website like Amazon. Feel free to change this project based on your needs and add it to your portfolio. Also, I will love to hear your comment about this React and Node tutorial. Please share your thoughts here.

More Repositories

1

amazona

Build Ecommerce Like Amazon By MERN Stack
JavaScript
597
star
2

mern-amazona

Build Ecommerce Like Amazon By MERN Stack
JavaScript
327
star
3

next-amazona

JavaScript
289
star
4

next-tailwind-amazona

Build Ecommerce Like Amazon By NEXT JS
JavaScript
234
star
5

node-javascript-ecommerce

Build ECommece Like Amazon Using Vanilla JS
JavaScript
214
star
6

react-shopping-cart

React Redux Tutorial - Build ECommerce Shopping Cart In 5 Hours
JavaScript
211
star
7

ecommerce-shopping-cart

Learn React & Redux From 0 to 100 in this course
JavaScript
140
star
8

react-course-final

JavaScript
68
star
9

next-amazona-v2

TypeScript
67
star
10

next-pg-shadcn-ecommerce

TypeScript
63
star
11

sanity-amazona

JavaScript
57
star
12

ts-mern-amazona

TypeScript
54
star
13

react-google-login

JavaScript
26
star
14

self-order-kiosk-final

JavaScript
20
star
15

nextjs-shopping-cart-like-amazon

JavaScript
19
star
16

tic-tac-toe

React.js Tic Tac Toe Game in 30 Minutes
JavaScript
18
star
17

next-15-admin-dashboard

TypeScript
17
star
18

support-desk-app

JavaScript
15
star
19

ts-mern-amazona-final

TypeScript
15
star
20

angular-amazona-final

TypeScript
14
star
21

coolshop

JavaScript
13
star
22

google-one-tap-login-app

JavaScript
12
star
23

next-amazona-2

JavaScript
10
star
24

coolshop-final

JavaScript
10
star
25

amazona-final

JavaScript
10
star
26

node-react-ecommerce-final

An ECommerce Website Like Amazon
JavaScript
8
star
27

nextjs-amazona-final

JavaScript
8
star
28

new-amazona-final

JavaScript
7
star
29

react-awesome-blog-final

JavaScript
7
star
30

basir.github.io

Basir Jafarzadeh Portfolio Website
HTML
7
star
31

mern-marketplace-final

JavaScript
6
star
32

react-advanced-app

JavaScript
6
star
33

react-basic-app

JavaScript
6
star
34

ssr-shopping-cart

JavaScript
6
star
35

razorpay-app

JavaScript
6
star
36

node-javascript-ecommerce-final

JavaScript
6
star
37

nextjs-ecommerce-final

JavaScript
6
star
38

react-shopping-cart-final

Get 90% Discount on this udemy course
JavaScript
6
star
39

sanity-next-amazona-final

JavaScript
5
star
40

vue-food-delivery-final

Vue
5
star
41

react-tic-tac-toe

Learn React basics and reducer hooks by creating a game
JavaScript
5
star
42

react-18-shopping-cart

JavaScript
5
star
43

self-order-kiosk

JavaScript
5
star
44

next-admin-products-netlify

TypeScript
5
star
45

angular-amazona

TypeScript
4
star
46

mern-marketplace

JavaScript
4
star
47

react-table-app

react-table in action
JavaScript
4
star
48

food-delivery-app-final

Vue
4
star
49

small-shopping-cart

JavaScript
4
star
50

amazona-app

JavaScript
4
star
51

react-awesome-blog

JavaScript
4
star
52

react-todo-app

JavaScript
3
star
53

react-google-login-app-final

JavaScript
3
star
54

nextjs-tailwind-amazona-final

JavaScript
3
star
55

basir-portfolio

HTML
3
star
56

ecommerce-tools

3
star
57

shopping-cart-next-rtk-query

JavaScript
3
star
58

support-desk-react-socket-io-final

JavaScript
3
star
59

amazona-in

JavaScript
2
star
60

sonnet-18

JavaScript
2
star
61

next-netlify-starter

JavaScript
2
star
62

my-app

JavaScript
1
star
63

react-node-send-email

JavaScript
1
star
64

the-modern-javascript-course

JavaScript
1
star
65

next-amazona-app

1
star
66

next-server-actions-admin-products

TypeScript
1
star