• Stars
    star
    314
  • Rank 130,041 (Top 3 %)
  • Language
    JavaScript
  • Created over 2 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 Like Amazon By MERN Stack

MERN AMAZONA

amazona

React Tutorial - Build ECommerce in 6 Hours [2022]

Welcome to my React and Node tutorial to build a fully-functional e-commerce website exactly like amazon. Open your code editor and follow me for the next hours to build an e-commerce website using MERN stack (MongoDB, ExpressJS, React and Node.JS).

Watch it on Youtube: https://www.youtube.com/watch?v=CDtPMR5y0QU

Demo Website

You Will Learn

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

Run Locally

1. Clone repo

$ git clone [email protected]:basir/mern-amazona.git
$ cd mern-amazona

2. Create .env File

  • duplicate .env.example in backend folder and rename it to .env

3. Setup MongoDB

  • Local MongoDB
    • Install it from here
    • In .env file update MONGODB_URI=mongodb://localhost/amazona
  • OR Atlas Cloud MongoDB

4. Run Backend

$ cd backend
$ npm install
$ npm start

5. Run Frontend

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

6. Seed Users and Products

7. Admin Login

Support

  • Contact Instructor: Basir

Lessons

  1. Introduction
  2. Install Tools
  3. Create React App
  4. Create Git Repository
  5. List Products
    1. create products array
    2. add product images
    3. render products
    4. style products
  6. Add page routing
    1. npm i react-router-dom
    2. create route for home screen
    3. create router for product screen
  7. Create Node.JS Server
    1. run npm init in root folder
    2. Update package.json set type: module
    3. Add .js to imports
    4. npm install express
    5. create server.js
    6. add start command as node backend/server.js
    7. require express
    8. create route for / return backend is ready.
    9. move products.js from frontend to backend
    10. create route for /api/products
    11. return products
    12. run npm start
  8. Fetch Products From Backend
    1. set proxy in package.json
    2. npm install axios
    3. use state hook
    4. use effect hook
    5. use reducer hook
  9. Manage State By Reducer Hook
    1. define reducer
    2. update fetch data
    3. get state from usReducer
  10. Add bootstrap UI Framework
    1. npm install react-bootstrap bootstrap
    2. update App.js
  11. Create Product and Rating Component
    1. create Rating component
    2. Create Product component
    3. Use Rating component in Product component
  12. Create Product Details Screen
    1. fetch product from backend
    2. create 3 columns for image, info and action
  13. Create Loading and Message Component
    1. create loading component
    2. use spinner component
    3. craete message component
    4. create utils.js to define getError fuction
  14. Create React Context For Add Item To Cart
    1. Create React Context
    2. define reducer
    3. create store provider
    4. implement add to cart button click handler
  15. Complete Add To Cart
    1. check exist item in the cart
    2. check count in stock in backend
  16. Create Cart Screen
    1. create 2 columns
    2. display items list
    3. create action column
  17. Complete Cart Screen
    1. click handler for inc/dec item
    2. click handler for remove item
    3. click handler for checkout
  18. Create Signin Screen
    1. create sign in form
    2. add email and password
    3. add signin button
  19. Connect To MongoDB Database
    1. create atlas monogodb database
    2. install local mongodb database
    3. npm install mongoose
    4. connect to mongodb database
  20. Seed Sample Products
    1. create Product model
    2. create seed route
    3. use route in server.js
    4. seed sample product
  21. Seed Sample Users
    1. create user model
    2. seed sample users
  22. Create Signin Backend API
    1. create signin api
    2. npm install jsonwebtoken
    3. define generateToken
  23. Complete Signin Screen
    1. handle submit action
    2. save token in store and local storage
    3. show user name in header
  24. Create Shipping Screen
    1. create form inputs
    2. handle save shipping address
    3. add checkout wizard bar
  25. Create Sign Up Screen
    1. create input forms
    2. handle submit
    3. create backend api
  26. Implement Select Payment Method Screen
    1. create input forms
    2. handle submit
  27. Create Place Order Screen
    1. show cart items, payment and address
    2. calculate order summary
  28. Implement Place Order Action
    1. handle place order action
    2. create order create api
  29. Create Order Screen
    1. create backend api for order/:id
    2. fetch order api in frontend
    3. show order information in 2 cloumns
  30. Pay Order By PayPal
    1. generate paypal client id
    2. create api to return client id
    3. install react-paypal-js
    4. use PayPalScriptProvider in index.js
    5. use usePayPalScriptReducer in Order Screen
    6. implement loadPaypalScript function
    7. render paypal button
    8. implement onApprove payment function
    9. create pay order api in backend
  31. Display Order History
    1. create order screen
    2. create order history api
    3. use api in the frontend
  32. Create Profile Screen
    1. get user info from context
    2. show user information
    3. create user update api
    4. update user info
  33. Publish To Heroku
    1. create and config node project
    2. serve build folder in frontend folder
    3. Create heroku account
    4. connect it to github
    5. Create mongodb atlas database
    6. Set database connection in heroku env variables
    7. Commit and push
  34. Add Sidebar and Search Box
    1. add sidebar
    2. add search box
  35. Create Search Screen
    1. show filters
    2. create api for searching products
    3. display results
  36. Create Admin Menu
    1. define protected route component
    2. define admin route component
    3. add menu for admin in header
  37. Create Dashboard Screen
    1. create dashboard ui
    2. implement backend api
    3. connect ui to backend
  38. Manage Products
    1. create products list ui
    2. implement backend api
    3. fetch data
  39. Create Product
    1. create products button
    2. implement backend api
    3. handle on click
  40. Create Edit Product
    1. create edit button
    2. create edit product ui
    3. dispaly product info in the input boxes
  41. Implement Update Product
    1. create edit product backend api
    2. handle update click
  42. Upload Product Image
    1. create cloudinary account
    2. use the api key in env file
    3. handle upload file
    4. implement backend api to upload
  43. Delete Product
    1. show delete button
    2. implement backend api
    3. handle on click
  44. List Orders
    1. create order list screen
    2. implement backen api
    3. fetch and display orders
  45. Deliver Order
    1. add deliver button
    2. handle click action
    3. implement backen api for deliver
  46. Delete Order
    1. add delete button
    2. handle click action
    3. implement backen api for delete
  47. List Users
    1. create user list screen
    2. implement backen api
    3. fetch and display users
  48. Edit User
    1. create edit button
    2. create edit product ui
    3. dispaly product info in the input boxes
    4. implement backend api
    5. handle edit click
  49. Delete User
    1. add delete button
    2. handle click action
    3. implement backen api for delete
  50. Choose Address On Google Map
    1. create google map credentials
    2. update .env file with Google Api Key
    3. create api to send google api to frontend
    4. create map screen
    5. fetch google api
    6. getUserLocation
    7. install @react-google-maps/api
    8. use it in shipping screen
    9. apply map to the checkout screen
  51. Email order receipt by mailgun
    1. create mailgun account
    2. add and verify your domain to mailgun
    3. install mailgun-js
    4. set api key in env file
    5. change pay order in orderRouter
    6. send email order receipt
  52. Review Products
    1. create submit review form
    2. handle submit
    3. implement backend api for review
  53. Upload multiple Images
    1. add images to product model
    2. get images in edit screen
    3. show images in product screen
  54. Upgrade To React 18
    1. install node-check-updates
    2. ncu -u
    3. remove package-lock.json
    4. npm install
    5. replace render with createRoot
    6. fix LinkContainer error

More Repositories

1

node-react-ecommerce

Build ECommerce Website Like Amazon By React & Node & MongoDB
JavaScript
1,619
star
2

amazona

Build Ecommerce Like Amazon By MERN Stack
JavaScript
583
star
3

next-amazona

JavaScript
288
star
4

next-tailwind-amazona

Build Ecommerce Like Amazon By NEXT JS
JavaScript
223
star
5

react-shopping-cart

React Redux Tutorial - Build ECommerce Shopping Cart In 5 Hours
JavaScript
199
star
6

node-javascript-ecommerce

Build ECommece Like Amazon Using Vanilla JS
JavaScript
199
star
7

ecommerce-shopping-cart

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

react-course-final

JavaScript
68
star
9

sanity-amazona

JavaScript
57
star
10

ts-mern-amazona

TypeScript
51
star
11

next-amazona-v2

TypeScript
47
star
12

react-google-login

JavaScript
26
star
13

learn-javascript

Learn JavaScript with Basir
HTML
23
star
14

react-node-send-email

JavaScript
20
star
15

self-order-kiosk-final

JavaScript
19
star
16

nextjs-shopping-cart-like-amazon

JavaScript
19
star
17

tic-tac-toe

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

support-desk-app

JavaScript
15
star
19

learn-htmlcss

Learn HTML&CSS by Exercises
HTML
15
star
20

angular-amazona-final

TypeScript
14
star
21

ts-mern-amazona-final

TypeScript
14
star
22

coolshop

JavaScript
13
star
23

learn-react

Learn React with Basir
HTML
13
star
24

google-one-tap-login-app

JavaScript
11
star
25

next-amazona-2

JavaScript
10
star
26

coolshop-final

JavaScript
10
star
27

amazona-final

JavaScript
10
star
28

node-react-ecommerce-final

An ECommerce Website Like Amazon
JavaScript
8
star
29

nextjs-amazona-final

JavaScript
8
star
30

new-amazona-final

JavaScript
7
star
31

react-awesome-blog-final

JavaScript
7
star
32

basir.github.io

Basir Jafarzadeh Portfolio Website
HTML
7
star
33

mern-marketplace-final

JavaScript
6
star
34

react-advanced-app

JavaScript
6
star
35

react-basic-app

JavaScript
6
star
36

razorpay-app

JavaScript
6
star
37

react-shopping-cart-final

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

node-javascript-ecommerce-final

JavaScript
6
star
39

nextjs-ecommerce-final

JavaScript
6
star
40

sanity-next-amazona-final

JavaScript
5
star
41

vue-food-delivery-final

Vue
5
star
42

learn-node-express

Learn Node and Express with Basir
5
star
43

react-tic-tac-toe

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

react-18-shopping-cart

JavaScript
5
star
45

next-admin-products-netlify

TypeScript
5
star
46

angular-amazona

TypeScript
4
star
47

mern-marketplace

JavaScript
4
star
48

react-table-app

react-table in action
JavaScript
4
star
49

learn-git-github

Learn Git and Github with Basir
4
star
50

food-delivery-app-final

Vue
4
star
51

small-shopping-cart

JavaScript
4
star
52

amazona-app

JavaScript
4
star
53

react-awesome-blog

JavaScript
4
star
54

react-todo-app

JavaScript
3
star
55

react-google-login-app-final

JavaScript
3
star
56

nextjs-tailwind-amazona-final

JavaScript
3
star
57

basir-portfolio

HTML
3
star
58

ecommerce-tools

3
star
59

shopping-cart-next-rtk-query

JavaScript
3
star
60

support-desk-react-socket-io-final

JavaScript
3
star
61

learn-css

Learn CSS By
HTML
3
star
62

amazona-in

JavaScript
2
star
63

sonnet-18

JavaScript
2
star
64

ssr-shopping-cart

JavaScript
2
star
65

self-order-kiosk

JavaScript
2
star
66

next-netlify-starter

JavaScript
2
star
67

my-app

JavaScript
1
star
68

next-amazona-app

1
star
69

the-modern-javascript-course

JavaScript
1
star