├── .gitignore ├── .prettierrc ├── README.md ├── craco.config.js ├── package.json ├── public ├── _redirects ├── favicon-32x32.png ├── favicon.ico ├── index.html ├── manifest.json ├── robots.txt └── shop.png ├── src ├── App.js ├── App.scss ├── assets │ ├── coupon.png │ ├── delete.png │ ├── delivery.png │ ├── frontpage.svg │ ├── shop.svg │ ├── uempty_cart.svg │ └── wishlist.png ├── components │ ├── Aboutus │ │ ├── Aboutus.jsx │ │ ├── bike.svg │ │ ├── delivered.svg │ │ ├── qual.svg │ │ ├── rating.svg │ │ └── undraw_profile_pic_ic5t.svg │ ├── AddressPage │ │ ├── AddressCard.jsx │ │ ├── AddressForm.jsx │ │ ├── AddressModal.js │ │ ├── AddressPage.jsx │ │ ├── OrderSuccess.jsx │ │ └── SelectAddress.jsx │ ├── Cart.jsx │ ├── Categories │ │ ├── Categories.jsx │ │ ├── CategoryCard.jsx │ │ └── CircularCard.jsx │ ├── Footer │ │ ├── Async.svg │ │ ├── Footer.css │ │ ├── Footer.jsx │ │ └── wave.svg │ ├── Home.jsx │ ├── LandingPageItems │ │ ├── Banner.jsx │ │ ├── Container.jsx │ │ ├── ItemCard.jsx │ │ ├── Items.jsx │ │ └── LandingPageItems.jsx │ ├── Loading.js │ ├── Navbar.jsx │ ├── OrderPage │ │ ├── EmptyOrder.jsx │ │ ├── OrderItem.jsx │ │ ├── Orderpage.jsx │ │ └── RatingStars.jsx │ ├── ProductDetails │ │ └── ProductDetails.js │ ├── Products │ │ ├── Card.js │ │ └── ProductsList.js │ ├── ToastContainer.js │ ├── Wishlist │ │ ├── EmptyWishlist.jsx │ │ ├── Wishlist.jsx │ │ ├── WishlistCard.jsx │ │ └── icon.svg │ ├── cart.scss │ └── icons │ │ └── navIcon.js ├── config │ ├── axios.config.js │ └── myLog.js ├── images │ ├── categories-accessories.jpg │ ├── categories-cosmetics.jpg │ ├── categories-electronics.jfif │ ├── categories-footwear.jpg │ ├── categories-home-decor.jpg │ ├── categories-kids-wear.jpg │ ├── categories-mens-clothing.jpg │ ├── categories-womens-clothing.jpg │ └── order-images │ │ ├── deliveredicon.svg │ │ ├── emptyOrder.svg │ │ └── successfulorder.svg ├── index.js ├── index.scss ├── redux │ ├── slices │ │ ├── Cartslice.js │ │ ├── addressSlice.js │ │ ├── orderSlice.js │ │ ├── productSlice.js │ │ └── whishlistSlice.js │ └── store.js ├── services │ ├── addresses.js │ ├── api.js │ ├── orders.js │ ├── products.js │ └── wishlist.js └── styles │ ├── home.scss │ └── productList.scss ├── tailwind.config.js ├── tailwindcss-config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .env 8 | 9 | # testing 10 | /coverage 11 | 12 | # production 13 | /build 14 | 15 | # misc 16 | .DS_Store 17 | .env.local 18 | .env.development.local 19 | .env.test.local 20 | .env.production.local 21 | 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | 26 | package-lock.json 27 | /.vscode 28 | /build -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5", 4 | "endOfLine": "lf" 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Async Store 2 | 3 |

4 | 5 |

6 |
7 | 8 | [![Netlify Status](https://api.netlify.com/api/v1/badges/2a86b226-126e-4943-af05-fa8a7a857cde/deploy-status)](https://app.netlify.com/sites/asyncstore/deploys) 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | ## 17 | 18 | - [Shop Now](https://asyncstore.netlify.app/) 19 | - [Demo](https://drive.google.com/file/d/1zP8nYBfEcFiyl37Is-a_EL7TYttcOYjh/view?usp=sharing) 20 | 21 | ## Screenshot 22 | 23 | ![Web capture_23-8-2021_175523_asyncstore netlify app](https://user-images.githubusercontent.com/56041735/130447281-2f9c2025-040e-41bd-aecc-367bae2aa0f4.jpeg) 24 | ![Web capture_23-8-2021_175747_asyncstore netlify app](https://user-images.githubusercontent.com/56041735/130447623-a8e270e3-dad4-47ea-9955-9b93ca7f0a1f.jpeg) 25 | ![Web capture_23-8-2021_175825_asyncstore netlify app](https://user-images.githubusercontent.com/56041735/130447360-c56f5aed-51f3-4acb-9a59-c8507be96a30.jpeg) 26 | ![Web capture_23-8-2021_175649_asyncstore netlify app](https://user-images.githubusercontent.com/56041735/130447402-3b2be174-21d9-4ca0-8181-2e39e7268dca.jpeg) 27 | 28 | ## Contributers 29 | 30 | - [Sukhseerat](https://github.com/Sukhseerat-Kaur) 31 | - [VivekBcloud](https://github.com/VivekBcloud) 32 | - [Ashirbad](https://github.com/ashirbad29) 33 | - [Shrey](https://github.com/signifershrey) 34 | - [harsh](https://github.com/harsh010501) 35 | - [Arun](https://github.com/Arunsahu07) 36 | - [Swaijot ](https://github.com/swag1223) 37 | -------------------------------------------------------------------------------- /craco.config.js: -------------------------------------------------------------------------------- 1 | // craco.config.js 2 | module.exports = { 3 | style: { 4 | postcss: { 5 | plugins: [require('tailwindcss'), require('autoprefixer')], 6 | }, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async-ecommerce", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@craco/craco": "^6.2.0", 7 | "@headlessui/react": "^1.4.0", 8 | "@heroicons/react": "^1.0.4", 9 | "@material-ui/core": "^4.12.3", 10 | "@material-ui/icons": "^4.11.2", 11 | "@material-ui/lab": "^4.0.0-alpha.60", 12 | "@reduxjs/toolkit": "^1.6.1", 13 | "@testing-library/jest-dom": "^5.11.4", 14 | "@testing-library/react": "^11.1.0", 15 | "@testing-library/user-event": "^12.1.10", 16 | "axios": "^0.21.1", 17 | "fontawesome": "^5.6.3", 18 | "prettier": "^2.3.2", 19 | "react": "^17.0.2", 20 | "react-dom": "^17.0.2", 21 | "react-fontawesome": "^1.7.1", 22 | "react-hot-toast": "^2.1.0", 23 | "react-modal": "^3.14.3", 24 | "react-redux": "^7.2.4", 25 | "react-router-dom": "^5.2.0", 26 | "react-scripts": "4.0.3", 27 | "react-scroll": "^1.8.3", 28 | "redux": "^4.1.1", 29 | "sass": "^1.38.0", 30 | "web-vitals": "^1.0.1" 31 | }, 32 | "scripts": { 33 | "start": "craco start", 34 | "build": "craco build", 35 | "test": "craco test", 36 | "eject": "react-scripts eject", 37 | "watch:css": "postcss src/styles/tailwind.css -o src/styles/output.css" 38 | }, 39 | "eslintConfig": { 40 | "extends": [ 41 | "react-app", 42 | "react-app/jest" 43 | ] 44 | }, 45 | "browserslist": { 46 | "production": [ 47 | ">0.2%", 48 | "not dead", 49 | "not op_mini all" 50 | ], 51 | "development": [ 52 | "last 1 chrome version", 53 | "last 1 firefox version", 54 | "last 1 safari version" 55 | ] 56 | }, 57 | "devDependencies": { 58 | "autoprefixer": "^9", 59 | "postcss": "^7", 60 | "postcss-cli": "^8.3.1", 61 | "tailwindcss": "npm:@tailwindcss/postcss7-compat" 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | Async Store 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/public/shop.png -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Suspense } from 'react'; 2 | import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; 3 | import Navbar from './components/Navbar'; 4 | 5 | import Loading from './components/Loading'; 6 | import './App.scss'; 7 | import ToastContainer from './components/ToastContainer'; 8 | 9 | // Dynamic Imports 10 | const Home = React.lazy(() => import('./components/Home')); 11 | const Aboutus = React.lazy(() => import('./components/Aboutus/Aboutus')); 12 | const ProductsList = React.lazy(() => 13 | import('./components/Products/ProductsList') 14 | ); 15 | const Orderpage = React.lazy(() => import('./components/OrderPage/Orderpage')); 16 | const Wishlist = React.lazy(() => import('./components/Wishlist/Wishlist')); 17 | const Cart = React.lazy(() => import('./components/Cart')); 18 | const ProductDetails = React.lazy(() => 19 | import('./components/ProductDetails/ProductDetails') 20 | ); 21 | const OrderSuccess = React.lazy(() => 22 | import('./components/AddressPage/OrderSuccess') 23 | ); 24 | const AddressPage = React.lazy(() => 25 | import('./components/AddressPage/AddressPage') 26 | ); 27 | 28 | function App() { 29 | return ( 30 |
31 | 32 | 33 | 34 | 35 | }> 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | ); 50 | } 51 | 52 | export default App; 53 | -------------------------------------------------------------------------------- /src/App.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;400&display=swap'); 2 | 3 | body { 4 | &::-webkit-scrollbar { 5 | width: 8px; 6 | background-color: #d9d0e8; 7 | border-radius: 5px; 8 | overflow: hidden; 9 | } 10 | &::-webkit-scrollbar-thumb { 11 | background-color: #a39cb1; 12 | // border-radius: 5px; 13 | } 14 | } 15 | 16 | .custom-scroll { 17 | &::-webkit-scrollbar { 18 | width: 8px; 19 | background-color: #d9d0e8; 20 | border-radius: 5px; 21 | overflow: hidden; 22 | } 23 | &::-webkit-scrollbar-thumb { 24 | background-color: #a39cb1; 25 | border-radius: 5px; 26 | } 27 | } 28 | .App { 29 | // background-color: #f5f3f7; 30 | font-family: 'Montserrat', sans-serif; 31 | box-sizing: border-box; 32 | } 33 | 34 | .App-header { 35 | min-height: 100vh; 36 | display: flex; 37 | flex-direction: column; 38 | align-items: center; 39 | justify-content: center; 40 | font-size: calc(10px + 2vmin); 41 | color: #000; 42 | } 43 | 44 | .categories-electronics { 45 | background: url(./images/categories-electronics.jfif) no-repeat center 46 | center/cover; 47 | } 48 | 49 | .categories-mens-clothing { 50 | background: url(./images/categories-mens-clothing.jpg) no-repeat center 51 | center/cover; 52 | } 53 | 54 | .categories-womens-clothing { 55 | background: url(./images/categories-womens-clothing.jpg) no-repeat center 56 | center/cover; 57 | } 58 | 59 | .categories-kids-wear { 60 | background: url(./images/categories-kids-wear.jpg) no-repeat center 61 | center/cover; 62 | } 63 | 64 | .categories-footwear { 65 | background: url(./images/categories-footwear.jpg) no-repeat top center/cover; 66 | } 67 | 68 | .categories-accessories { 69 | background: url(./images/categories-accessories.jpg) no-repeat center 70 | center/cover; 71 | } 72 | 73 | .categories-home-decor { 74 | background: url(./images/categories-home-decor.jpg) no-repeat center 75 | center/cover; 76 | } 77 | 78 | .categories-cosmetics { 79 | background: url(./images/categories-cosmetics.jpg) no-repeat center 80 | center/cover; 81 | } 82 | 83 | .navbar-link { 84 | color: black; 85 | font-size: 1.275rem; 86 | font-weight: 500; 87 | // margin: 0px 3px 0px 3px; 88 | padding: 3px 2px; 89 | text-decoration: none; 90 | position: relative; 91 | 92 | &:after { 93 | bottom: -4px; 94 | content: ''; 95 | display: block; 96 | height: 2px; 97 | left: 0; 98 | position: absolute; 99 | background: rgba(236, 72, 153, 1); 100 | opacity: 0.6; 101 | transition: width 0.6s ease 0s, opacity 0.6s ease 0s; 102 | width: 0; 103 | } 104 | 105 | &:hover:after { 106 | width: 100%; 107 | opacity: 0.9; 108 | } 109 | } 110 | .active-class { 111 | color: rgba(236, 72, 153, 1); 112 | } 113 | -------------------------------------------------------------------------------- /src/assets/coupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/src/assets/coupon.png -------------------------------------------------------------------------------- /src/assets/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/src/assets/delete.png -------------------------------------------------------------------------------- /src/assets/delivery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/src/assets/delivery.png -------------------------------------------------------------------------------- /src/assets/shop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/assets/uempty_cart.svg: -------------------------------------------------------------------------------- 1 | empty_cart -------------------------------------------------------------------------------- /src/assets/wishlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Team-Asyncc/async-ecommerce/857adc7456789f57b8fe85a8bb495f31ba3a2dd0/src/assets/wishlist.png -------------------------------------------------------------------------------- /src/components/Aboutus/Aboutus.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import good from './qual.svg'; 3 | import bike from './bike.svg'; 4 | import review from './rating.svg'; 5 | import onmywad from './delivered.svg'; 6 | import Footer from '../Footer/Footer'; 7 | import profile from './undraw_profile_pic_ic5t.svg'; 8 | 9 | const Aboutus = () => { 10 | return ( 11 | <> 12 |
13 |

Our Story

14 |
15 |
16 |

17 | Providing our customers with a sophisticated ecommerce retail 18 | shopping experience. Our products coupled with a relaxed and 19 | gourmet atmosphere appeals to a wide variety of customers. With 20 | top-rated selections in fine quality clothing products, cosmetic 21 | products,and other accessories, Async Store is committed to 22 | providing the best merchandise selection at the lowest possible 23 | prices. 24 |

25 | 26 |
27 |
28 |
29 | 30 |
31 |
32 |
33 |
34 |

35 | 2.7K 36 |

37 |

Visitors

38 |
39 |
40 |

41 | 1.8K 42 |

43 |

Subscribes

44 |
45 |
46 |

47 | 150 48 |

49 |

Orders

50 |
51 |
52 |

53 | 500 54 |

55 |

Products

56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | flame 66 |
67 | 68 |

69 | Made to Create Good 70 |

71 |

72 | We design outdoor products to help you create good moments that 73 | become lasting memories. 74 |

75 |
76 |
77 |
78 | bus 79 |
80 |

81 | Free Shipping & Returns 82 |

83 |

84 | Free shipping and returns on all orders in India. 85 |

86 |
87 |
88 |
89 | star 90 |
91 | 92 |

93 | 200+ 5 Star Reviews 94 |

95 |

96 | Ingenious, quality products designed to last for a long time. 97 |

98 |
99 |
100 |
101 | flame 102 |
103 |

104 | We Deliver Happiness 105 |

106 |

107 | We design outdoor products to help you create good moments that 108 | become lasting memories. 109 |

110 |
111 |
112 |
113 |
114 | {/* testimonials */} 115 |
116 |

117 | Testimonials 118 |

119 |
120 |
121 |
122 |
123 | 129 | 130 | 131 |

132 | I bought for a TShirt for my small sister.Overall design & 133 | colours are attractive. Value for money. 134 |

135 | 136 | testimonial 141 | 142 | 143 | Swetabh Singh 144 | 145 | Customer 146 | 147 | 148 |
149 |
150 |
151 |
152 | 158 | 159 | 160 |

161 | The jewellery products are very beautiful and afforable. 162 |

163 | 164 | testimonial 169 | 170 | 171 | Mohit Singh 172 | 173 | Customer 174 | 175 | 176 |
177 |
178 |
179 |
180 |
181 |