├── .vscode └── launch.json ├── ACC-(Advanced-Node-Express-mongoose) ├── module-10 │ ├── .gitignore │ ├── _data │ │ ├── brands.json │ │ ├── categories.json │ │ ├── products.json │ │ ├── stock.json │ │ └── suppliers.json │ ├── app.js │ ├── config │ │ └── db.js │ ├── controllers │ │ ├── brand.controller.js │ │ ├── category.controller.js │ │ ├── product.controller.js │ │ ├── stock.controller.js │ │ ├── store.controller.js │ │ └── supplier.controller.js │ ├── middleware │ │ └── uploader.js │ ├── models │ │ ├── Brand.js │ │ ├── Category.js │ │ ├── Product.js │ │ ├── Stock.js │ │ ├── Store.js │ │ └── Supplier.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ ├── brand.route.js │ │ ├── category.route.js │ │ ├── product.route.js │ │ ├── stock.route.js │ │ ├── store.route.js │ │ └── supplier.route.js │ ├── server.js │ └── services │ │ ├── brand.service.js │ │ ├── category.service.js │ │ ├── product.services.js │ │ ├── stock.service.js │ │ ├── store.service.js │ │ └── supplier.service.js ├── module-11 │ ├── .gitignore │ ├── _data │ │ ├── brands.json │ │ ├── categories.json │ │ ├── products.json │ │ ├── stock.json │ │ └── suppliers.json │ ├── app.js │ ├── config │ │ └── db.js │ ├── controllers │ │ ├── brand.controller.js │ │ ├── category.controller.js │ │ ├── product.controller.js │ │ ├── stock.controller.js │ │ ├── store.controller.js │ │ ├── supplier.controller.js │ │ └── user.controller.js │ ├── middleware │ │ ├── authorization.js │ │ ├── uploader.js │ │ └── verifyToken.js │ ├── models │ │ ├── Brand.js │ │ ├── Category.js │ │ ├── Product.js │ │ ├── Stock.js │ │ ├── Store.js │ │ ├── Supplier.js │ │ └── User.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ ├── brand.route.js │ │ ├── category.route.js │ │ ├── product.route.js │ │ ├── stock.route.js │ │ ├── store.route.js │ │ ├── supplier.route.js │ │ └── user.route.js │ ├── server.js │ ├── services │ │ ├── brand.service.js │ │ ├── category.service.js │ │ ├── product.services.js │ │ ├── stock.service.js │ │ ├── store.service.js │ │ ├── supplier.service.js │ │ └── user.service.js │ └── utils │ │ ├── email.js │ │ └── token.js ├── module-3 │ ├── .gitignore │ ├── controllers │ │ └── tools.controller.js │ ├── index.js │ ├── middleware │ │ ├── errorhandler.js │ │ ├── limiter.js │ │ └── veiwCount.js │ ├── package.json │ ├── public │ │ └── index.html │ ├── readme.md │ ├── routes │ │ └── v1 │ │ │ └── tools.route.js │ ├── utils │ │ ├── dbConnect.js │ │ └── email.js │ └── views │ │ └── home.ejs ├── module-5 │ ├── .gitignore │ ├── controllers │ │ └── tools.controller.js │ ├── index.js │ ├── middleware │ │ ├── errorhandler.js │ │ ├── limiter.js │ │ └── veiwCount.js │ ├── package.json │ ├── public │ │ └── index.html │ ├── readme.md │ ├── routes │ │ └── v1 │ │ │ └── tools.route.js │ ├── utils │ │ ├── dbConnect.js │ │ └── email.js │ └── views │ │ └── home.ejs ├── module-6(inventory) │ ├── .gitignore │ ├── config │ │ └── db.js │ ├── controllers │ │ └── product.controller.js │ ├── models │ │ └── Product.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ └── product.route.js │ ├── server.js │ └── services │ │ └── product.services.js ├── module-7 │ ├── .gitignore │ ├── config │ │ └── db.js │ ├── controllers │ │ └── product.controller.js │ ├── models │ │ └── Product.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ └── product.route.js │ ├── server.js │ └── services │ │ └── product.services.js ├── module-8 │ ├── .gitignore │ ├── _data │ │ ├── brands.json │ │ ├── categories.json │ │ └── products.json │ ├── config │ │ └── db.js │ ├── controllers │ │ └── product.controller.js │ ├── models │ │ ├── Brand.js │ │ ├── Category.js │ │ ├── Product.js │ │ └── Store.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ └── product.route.js │ ├── server.js │ └── services │ │ └── product.services.js ├── module-9 │ ├── .gitignore │ ├── _data │ │ ├── brands.json │ │ ├── categories.json │ │ └── products.json │ ├── config │ │ └── db.js │ ├── controllers │ │ ├── brand.controller.js │ │ └── product.controller.js │ ├── models │ │ ├── Brand.js │ │ ├── Category.js │ │ ├── Product.js │ │ ├── Stock.js │ │ └── Store.js │ ├── package.json │ ├── readme.md │ ├── routes │ │ ├── brand.route.js │ │ └── product.route.js │ ├── server.js │ └── services │ │ ├── brand.services.js │ │ └── product.services.js └── readme.md ├── ACC-Advanced-github-and-javaScript ├── module-01 │ └── readme.md ├── module-03 │ ├── constructor-function.js │ ├── prototypal-inheritance.js │ ├── quiz.md │ └── readme.md ├── module-04 │ └── readme.md ├── quiz-01.md └── readme.md ├── ACC-Redux ├── module-1:The_foundation │ └── readme.md ├── module-2 │ ├── .gitignore │ ├── README.md │ ├── long-form-useReducer │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── products.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── pages │ │ │ │ ├── LongForm.js │ │ │ │ └── ShortForm.js │ │ │ └── state │ │ │ │ ├── actionTypes.js │ │ │ │ └── formReducer.js │ │ ├── tailwind.config.js │ │ └── yarn.lock │ ├── moon-tech-project │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── products.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── components │ │ │ │ └── ProductCard.js │ │ │ ├── context │ │ │ │ └── ProductProvider.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── layout │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ │ ├── pages │ │ │ │ ├── About.js │ │ │ │ ├── Cart.js │ │ │ │ ├── Home.js │ │ │ │ └── TopRated.js │ │ │ ├── routes │ │ │ │ └── routes.js │ │ │ └── state │ │ │ │ └── ProductState │ │ │ │ ├── actionTypes.js │ │ │ │ └── productReducer.js │ │ ├── tailwind.config.js │ │ └── yarn.lock │ ├── moon-tech-server │ │ ├── .gitignore │ │ ├── index.js │ │ ├── package.json │ │ ├── vercel.json │ │ └── yarn.lock │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── app │ │ └── store.js │ │ ├── features │ │ └── counter │ │ │ ├── Counter.js │ │ │ ├── Counter.module.css │ │ │ ├── counterAPI.js │ │ │ ├── counterSlice.js │ │ │ └── counterSlice.spec.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── module-3 │ ├── .gitignore │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── products.json │ │ └── robots.txt │ ├── readme.md │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── components │ │ │ └── ProductCard.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── Main.js │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── About.js │ │ │ ├── Cart.js │ │ │ ├── Home.js │ │ │ └── TopRated.js │ │ ├── redux │ │ │ ├── actionCreators │ │ │ │ └── productActions.js │ │ │ ├── actionTypes │ │ │ │ └── actionTypes.js │ │ │ ├── reducers │ │ │ │ └── productReducer.js │ │ │ └── store.js │ │ └── routes │ │ │ └── routes.js │ ├── tailwind.config.js │ └── yarn.lock ├── module-4 │ ├── .gitignore │ ├── moon-tech-server │ │ ├── .gitignore │ │ ├── index.js │ │ ├── package.json │ │ ├── vercel.json │ │ └── yarn.lock │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── products.json │ │ └── robots.txt │ ├── readme.md │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── components │ │ │ └── ProductCard.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── Dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ └── Sidebar.js │ │ │ └── Main │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── Dashboard │ │ │ │ ├── AddProduct.js │ │ │ │ └── ProductList.js │ │ │ └── Main │ │ │ │ ├── About.js │ │ │ │ ├── Cart.js │ │ │ │ ├── Home.js │ │ │ │ └── TopRated.js │ │ ├── redux │ │ │ ├── actionTypes │ │ │ │ └── actionTypes.js │ │ │ ├── actions │ │ │ │ ├── filterActions.js │ │ │ │ └── productAction.js │ │ │ ├── middlewares │ │ │ │ └── cartCounter.js │ │ │ ├── reducers │ │ │ │ ├── filterReducer.js │ │ │ │ ├── productReducer.js │ │ │ │ └── rootReducer.js │ │ │ ├── store.js │ │ │ └── thunk │ │ │ │ └── products │ │ │ │ ├── addProductData.js │ │ │ │ ├── deleteProduct.js │ │ │ │ └── fetchProducts.js │ │ └── routes │ │ │ └── routes.js │ ├── tailwind.config.js │ └── yarn.lock ├── module-5 │ ├── .gitignore │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── products.json │ │ └── robots.txt │ ├── readme.md │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── app │ │ │ └── store.js │ │ ├── components │ │ │ └── ProductCard.js │ │ ├── features │ │ │ ├── cart │ │ │ │ └── cartSlice.js │ │ │ ├── filter │ │ │ │ └── filterSlice.js │ │ │ └── products │ │ │ │ └── productsSlice.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── Dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ └── Sidebar.js │ │ │ └── Main │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── Dashboard │ │ │ │ ├── AddProduct.js │ │ │ │ └── ProductList.js │ │ │ └── Main │ │ │ │ ├── About.js │ │ │ │ ├── Cart.js │ │ │ │ ├── Home.js │ │ │ │ └── TopRated.js │ │ └── routes │ │ │ └── routes.js │ ├── tailwind.config.js │ ├── testing-redux-toolkit │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── app │ │ │ │ └── store.js │ │ │ ├── features │ │ │ │ └── counter │ │ │ │ │ ├── Counter.js │ │ │ │ │ ├── Counter.module.css │ │ │ │ │ ├── counterAPI.js │ │ │ │ │ ├── counterSlice.js │ │ │ │ │ └── counterSlice.spec.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ │ └── yarn.lock │ └── yarn.lock ├── module-6 │ ├── .gitignore │ ├── RTK-query │ │ ├── .gitignore │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ ├── products.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── app │ │ │ │ └── store.js │ │ │ ├── components │ │ │ │ └── ProductCard.js │ │ │ ├── features │ │ │ │ ├── api │ │ │ │ │ └── apiSlice.js │ │ │ │ ├── cart │ │ │ │ │ └── cartSlice.js │ │ │ │ └── filter │ │ │ │ │ └── filterSlice.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── layout │ │ │ │ ├── Dashboard │ │ │ │ │ ├── Dashboard.js │ │ │ │ │ └── Sidebar.js │ │ │ │ └── Main │ │ │ │ │ ├── Main.js │ │ │ │ │ └── Navbar.js │ │ │ ├── pages │ │ │ │ ├── Dashboard │ │ │ │ │ ├── AddProduct.js │ │ │ │ │ └── ProductList.js │ │ │ │ └── Main │ │ │ │ │ ├── About.js │ │ │ │ │ ├── Cart.js │ │ │ │ │ ├── Home.js │ │ │ │ │ └── TopRated.js │ │ │ └── routes │ │ │ │ └── routes.js │ │ ├── tailwind.config.js │ │ └── yarn.lock │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── products.json │ │ └── robots.txt │ ├── readme.md │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── app │ │ │ └── store.js │ │ ├── components │ │ │ └── ProductCard.js │ │ ├── features │ │ │ ├── cart │ │ │ │ └── cartSlice.js │ │ │ ├── filter │ │ │ │ └── filterSlice.js │ │ │ └── products │ │ │ │ ├── productsAPI.js │ │ │ │ └── productsSlice.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── Dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ └── Sidebar.js │ │ │ └── Main │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── Dashboard │ │ │ │ ├── AddProduct.js │ │ │ │ └── ProductList.js │ │ │ └── Main │ │ │ │ ├── About.js │ │ │ │ ├── Cart.js │ │ │ │ ├── Home.js │ │ │ │ └── TopRated.js │ │ ├── routes │ │ │ └── routes.js │ │ └── utils │ │ │ └── axios.config.js │ ├── tailwind.config.js │ └── yarn.lock ├── module-7(final-project-part-1) │ ├── .gitignore │ ├── README.md │ ├── jobbox-server │ │ ├── .gitignore │ │ ├── index.js │ │ ├── package.json │ │ └── yarn.lock │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.js │ │ ├── app │ │ │ └── store.js │ │ ├── assets │ │ │ ├── candidate.svg │ │ │ ├── employer.svg │ │ │ ├── hero-01.jpg │ │ │ ├── hero-02.jpg │ │ │ ├── hero-03.jpg │ │ │ ├── hero-logo-1.png │ │ │ ├── hero-logo-2.png │ │ │ ├── hero-logo-3.png │ │ │ ├── hero-logo-4.png │ │ │ ├── hero-logo-5.png │ │ │ ├── hero-logo-6.png │ │ │ ├── hero-logo-7.png │ │ │ ├── loading.gif │ │ │ ├── login.svg │ │ │ └── meeting.jpg │ │ ├── components │ │ │ └── reusable │ │ │ │ ├── Badge.js │ │ │ │ ├── JobCard.js │ │ │ │ └── Loading.js │ │ ├── feature │ │ │ ├── api │ │ │ │ └── apiSlice.js │ │ │ └── auth │ │ │ │ ├── authApi.js │ │ │ │ └── authSlice.js │ │ ├── firebase │ │ │ └── firebase.config.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ └── Sidebar.js │ │ │ └── main │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── JobDetails.js │ │ │ ├── Jobs.js │ │ │ ├── Login.js │ │ │ ├── Signup.js │ │ │ ├── candidateDashboard │ │ │ │ ├── AppliedJobs.js │ │ │ │ └── CandidateDashboard.js │ │ │ ├── employeeDashboard │ │ │ │ ├── AddJob.js │ │ │ │ └── EmployerDashboard.js │ │ │ ├── home │ │ │ │ ├── Home.js │ │ │ │ └── Landing.js │ │ │ └── register │ │ │ │ ├── AccountCreator.js │ │ │ │ ├── CandidateRegistration.js │ │ │ │ └── EmployerRegistration.js │ │ ├── routes │ │ │ └── routes.js │ │ └── utils │ │ │ └── PrivateRoute.js │ ├── tailwind.config.js │ └── yarn.lock ├── module-8(part-2) │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.js │ │ ├── app │ │ │ └── store.js │ │ ├── assets │ │ │ ├── candidate.svg │ │ │ ├── employer.svg │ │ │ ├── hero-01.jpg │ │ │ ├── hero-02.jpg │ │ │ ├── hero-03.jpg │ │ │ ├── hero-logo-1.png │ │ │ ├── hero-logo-2.png │ │ │ ├── hero-logo-3.png │ │ │ ├── hero-logo-4.png │ │ │ ├── hero-logo-5.png │ │ │ ├── hero-logo-6.png │ │ │ ├── hero-logo-7.png │ │ │ ├── loading.gif │ │ │ ├── login.svg │ │ │ └── meeting.jpg │ │ ├── components │ │ │ └── reusable │ │ │ │ ├── Badge.js │ │ │ │ ├── JobCard.js │ │ │ │ └── Loading.js │ │ ├── feature │ │ │ ├── api │ │ │ │ └── apiSlice.js │ │ │ ├── auth │ │ │ │ ├── authApi.js │ │ │ │ └── authSlice.js │ │ │ └── job │ │ │ │ └── jobApi.js │ │ ├── firebase │ │ │ └── firebase.config.js │ │ ├── index.css │ │ ├── index.js │ │ ├── layout │ │ │ ├── dashboard │ │ │ │ ├── Dashboard.js │ │ │ │ └── Sidebar.js │ │ │ └── main │ │ │ │ ├── Main.js │ │ │ │ └── Navbar.js │ │ ├── pages │ │ │ ├── JobDetails.js │ │ │ ├── Jobs.js │ │ │ ├── Login.js │ │ │ ├── Signup.js │ │ │ ├── candidateDashboard │ │ │ │ ├── AppliedJobs.js │ │ │ │ └── CandidateDashboard.js │ │ │ ├── employeeDashboard │ │ │ │ ├── AddJob.js │ │ │ │ └── EmployerDashboard.js │ │ │ ├── home │ │ │ │ ├── Home.js │ │ │ │ └── Landing.js │ │ │ └── register │ │ │ │ ├── AccountCreator.js │ │ │ │ ├── CandidateRegistration.js │ │ │ │ └── EmployerRegistration.js │ │ ├── routes │ │ │ └── routes.js │ │ └── utils │ │ │ └── PrivateRoute.js │ ├── tailwind.config.js │ └── yarn.lock └── module-9(part-3) │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── postcss.config.js │ ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt │ ├── src │ ├── App.js │ ├── app │ │ └── store.js │ ├── assets │ │ ├── candidate.svg │ │ ├── employer.svg │ │ ├── hero-01.jpg │ │ ├── hero-02.jpg │ │ ├── hero-03.jpg │ │ ├── hero-logo-1.png │ │ ├── hero-logo-2.png │ │ ├── hero-logo-3.png │ │ ├── hero-logo-4.png │ │ ├── hero-logo-5.png │ │ ├── hero-logo-6.png │ │ ├── hero-logo-7.png │ │ ├── loading.gif │ │ ├── login.svg │ │ └── meeting.jpg │ ├── components │ │ └── reusable │ │ │ ├── Badge.js │ │ │ ├── JobCard.js │ │ │ └── Loading.js │ ├── feature │ │ ├── api │ │ │ └── apiSlice.js │ │ ├── auth │ │ │ ├── authAPI.js │ │ │ └── authSlice.js │ │ └── job │ │ │ └── jobAPI.js │ ├── firebase │ │ └── firebase.config.js │ ├── index.css │ ├── index.js │ ├── layout │ │ ├── dashboard │ │ │ ├── Dashboard.js │ │ │ └── Sidebar.js │ │ └── main │ │ │ ├── Main.js │ │ │ └── Navbar.js │ ├── pages │ │ ├── JobDetails.js │ │ ├── Jobs.js │ │ ├── Login.js │ │ ├── Signup.js │ │ ├── candidateDashboard │ │ │ ├── AppliedJobs.js │ │ │ └── CandidateDashboard.js │ │ ├── employeeDashboard │ │ │ ├── AddJob.js │ │ │ └── EmployerDashboard.js │ │ ├── home │ │ │ ├── Home.js │ │ │ └── Landing.js │ │ └── register │ │ │ ├── AccountCreator.js │ │ │ ├── CandidateRegistration.js │ │ │ └── EmployerRegistration.js │ ├── routes │ │ └── routes.js │ └── utils │ │ └── PrivateRoute.js │ ├── tailwind.config.js │ └── yarn.lock ├── img ├── acc-node.jpg ├── acc-redux.jpg └── js-git-mir-vai.jpg ├── milestone-1 ├── module-3_git │ └── readme.md ├── readme.md └── simple-dev-portfolio │ ├── index.html │ ├── readme.md │ └── style.css ├── milestone-10 ├── email-password-auth-react │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── firebase.init.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── react-google-map │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── components │ │ │ ├── Direction.js │ │ │ └── Map.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ └── yarn.lock ├── readme.md └── tech-geeks-firebase │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── data.json │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt │ ├── src │ ├── App.css │ ├── App.js │ ├── Assets │ │ └── Image │ │ │ ├── google.svg │ │ │ ├── indicator.svg │ │ │ └── logo.png │ ├── Components │ │ ├── Blog │ │ │ ├── Blog.css │ │ │ └── Blog.js │ │ ├── BlogDetails │ │ │ ├── BlogDetails.css │ │ │ └── BlogDetails.js │ │ ├── Home │ │ │ ├── Home.css │ │ │ └── Home.js │ │ ├── Login │ │ │ ├── AuthForm.css │ │ │ └── Login.js │ │ ├── Navbar │ │ │ ├── Navbar.css │ │ │ └── Navbar.js │ │ ├── Signup │ │ │ └── Signup.js │ │ └── Videos │ │ │ └── Videos.js │ ├── Firebase │ │ └── Firebase.init.js │ └── index.js │ └── yarn.lock ├── milestone-11 ├── first-node │ ├── .gitignore │ ├── index.js │ ├── package-lock.json │ └── package.json └── smarty-node │ ├── .gitignore │ ├── index.js │ ├── package-lock.json │ └── package.json ├── milestone-12 ├── doctors-portal │ ├── assets │ │ ├── icons │ │ │ ├── clock.svg │ │ │ ├── marker.svg │ │ │ ├── phone.svg │ │ │ └── quote.svg │ │ └── images │ │ │ ├── appointment.png │ │ │ ├── bg.png │ │ │ ├── cavity.png │ │ │ ├── chair.png │ │ │ ├── doctor-small.png │ │ │ ├── doctor.png │ │ │ ├── dribbble_1.gif │ │ │ ├── fluoride.png │ │ │ ├── footer.png │ │ │ ├── login.png │ │ │ ├── people1.png │ │ │ ├── people2.png │ │ │ ├── people3.png │ │ │ ├── treatment.png │ │ │ └── whitening.png │ └── doctors-portal.fig └── readme.md ├── milestone-13 └── readme.md ├── milestone-2 ├── cricket_match.html ├── flexbox.html ├── img │ └── bat.jpg ├── readme.md └── table.html ├── milestone-3 └── readme.md ├── milestone-4 ├── .vscode │ └── launch.json ├── break-continue.js ├── break-down.js ├── even-odd.js ├── factorial-function.js ├── factorial.js ├── for-loop.js ├── homework │ ├── celsiustofahrenheit.js │ ├── farenheittocelcius.js │ ├── gradeCalculation.js │ └── simpleInterest.js ├── inchTofeet.js ├── js-note.md ├── js-simple-problem │ ├── add-multiply.js │ ├── animal-count.js │ ├── divisible-by.js │ ├── fibonacci.js │ ├── fibonacciSerics.js │ ├── largest-element.js │ ├── lowest-element.js │ ├── math.js │ ├── max.js │ ├── module-23 │ │ ├── assignment04.js │ │ └── readme.md │ ├── object-find.js │ ├── quiz-more-js-problem.js │ ├── quiz.js │ ├── removeduplicate.js │ ├── small.js │ ├── string-reverse.js │ ├── sum.js │ ├── swap.js │ └── total-price.js ├── last-module-quiz.js ├── leap-year.js ├── multiple-parameter.js ├── object-property.js ├── quiz-condition.js ├── quiz-function-factorial.js ├── quiz-function.js ├── quiz-loop.js ├── quiz-mathematical-operation.js ├── readme.md ├── recursion.js ├── search.js ├── var-convert.js └── while_loop.js ├── milestone-5 ├── comment.js ├── eventBuble.js ├── eventDelegate.html ├── eventListener.js ├── keyEvent.html ├── quiz-01.js ├── quiz-02.js ├── quiz-03.js ├── quiz-28.js ├── readme.md └── string-array-methods-29 │ ├── arguments.js │ ├── array-exists.js │ ├── array-slice.js │ ├── array-sort.js │ ├── case-convert.js │ ├── quiz.js │ ├── readme.md │ ├── string-search.js │ ├── string-slice.js │ └── try-catch.js ├── milestone-6 ├── API-json-CRUD │ ├── index.html │ ├── js │ │ ├── api.js │ │ └── post.js │ ├── post.html │ └── quiz-33.js ├── api-checklist │ ├── app.js │ └── index.html ├── arrow-function.js ├── callback.js ├── class.js ├── closure.js ├── default-parameter.js ├── destructuring.js ├── dom.html ├── dom.js ├── filter-find.js ├── inheritance.js ├── kanye.rest-quotes │ ├── index.html │ └── js │ │ └── kanye.js ├── map.js ├── mealdb-api │ ├── mealdb.html │ ├── mealdb.js │ └── mealdbAsync.js ├── milestone-06-checklist.js ├── more-map.js ├── object-concept-js │ ├── bind-method.js │ ├── call-apply.js │ ├── compare-object.js │ ├── index.html │ ├── loop-object.js │ ├── method.js │ ├── properties.js │ ├── quiz-36.js │ └── this.js ├── optional-chaining.js ├── quiz-31.js ├── quiz-32.js ├── quiz-34.js ├── quiz-35.js ├── random-user-api │ ├── buddy.html │ └── buddy.js ├── readme.md ├── rest-country-api │ ├── countries.css │ ├── countries.html │ └── countries.js ├── scope.js ├── spread-operator.js └── template-string.js ├── milestone-7 ├── browser-api │ ├── alert.html │ ├── alert.js │ ├── cookie.js │ ├── location.html │ ├── quiz-39.js │ ├── readme.md │ ├── shopping.html │ └── shopping.js ├── js-you-need-to-know-for-react │ ├── array-methods.js │ ├── destructuring.js │ ├── fundamenntals.js │ ├── json.js │ ├── quiz-42.js │ ├── shortcut.js │ ├── storage.html │ └── storage.js ├── quiz-38.js ├── quiz-40.js ├── quiz-41.js ├── quiz.html ├── react-app-setup │ └── my-app │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── readme.md ├── regExp.js ├── setInterval.js └── setTimeout.js ├── milestone-8 ├── core-concepts │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── core-concepts2 │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── how-react-works │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── quiz-44.js ├── react-core-concept-recap │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── react-storage-and-handler │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── data.json │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── components │ │ ├── Cosmetic │ │ │ ├── Cosmetic.css │ │ │ └── Cosmetic.js │ │ ├── Cosmetics │ │ │ ├── Cosmetics.css │ │ │ └── Cosmetics.js │ │ └── utilities │ │ │ ├── calculate.js │ │ │ └── fakedb.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── readme.md ├── rest-countries-reactjs │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── components │ │ ├── Countries │ │ │ ├── Countries.css │ │ │ └── Countries.js │ │ └── Country │ │ │ ├── Country.css │ │ │ └── Country.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── rest-countries-recap │ ├── countries.js │ ├── index.html │ └── style.css └── simple-react-bonus │ ├── app.js │ └── index.html ├── milestone-9 ├── react-search-meal-db │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── components │ │ ├── Meal │ │ │ ├── Meal.css │ │ │ └── Meal.js │ │ ├── MealDetail │ │ │ └── MealDetail.js │ │ └── Restaurant │ │ │ ├── Restaurant.css │ │ │ └── Restaurant.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js ├── readme.md ├── responsive-nav-tailwind │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── components │ │ │ ├── Link │ │ │ │ └── Link.jsx │ │ │ └── Navigation │ │ │ │ └── Navigation.jsx │ │ ├── fonts │ │ │ ├── calibre │ │ │ │ ├── CalibreBlack.otf │ │ │ │ ├── CalibreBlackItalic.otf │ │ │ │ ├── CalibreBold.otf │ │ │ │ ├── CalibreBoldItalic.otf │ │ │ │ ├── CalibreLight.otf │ │ │ │ ├── CalibreLightItalic.otf │ │ │ │ ├── CalibreMedium.otf │ │ │ │ ├── CalibreMediumItalic.otf │ │ │ │ ├── CalibreRegular.otf │ │ │ │ ├── CalibreRegularItalic.otf │ │ │ │ ├── CalibreSemibold.otf │ │ │ │ ├── CalibreSemiboldItalic.otf │ │ │ │ ├── CalibreThin.otf │ │ │ │ └── CalibreThinItalic.otf │ │ │ └── sf-mono │ │ │ │ ├── SFMonoBold.woff │ │ │ │ ├── SFMonoBoldItalic.woff │ │ │ │ ├── SFMonoHeavy.woff │ │ │ │ ├── SFMonoHeavyItalic.woff │ │ │ │ ├── SFMonoLight.woff │ │ │ │ ├── SFMonoLightItalic.woff │ │ │ │ ├── SFMonoMedium.woff │ │ │ │ ├── SFMonoMediumItalic.woff │ │ │ │ ├── SFMonoRegular.woff │ │ │ │ ├── SFMonoRegularItalic.woff │ │ │ │ ├── SFMonoSemibold.woff │ │ │ │ ├── SFMonoSemiboldItalic.woff │ │ │ │ ├── example.html │ │ │ │ └── style.css │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ └── tailwind.config.js └── simple-volunteers │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── data.json │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt │ └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── components │ ├── Activity │ │ ├── Activity.css │ │ └── Activity.js │ ├── Header │ │ ├── Header.css │ │ └── Header.js │ ├── Home │ │ └── Home.js │ ├── Main │ │ ├── Main.css │ │ └── Main.js │ └── Volunteers │ │ └── Volunteers.js │ ├── hooks │ └── useVolunteers.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ ├── reportWebVitals.js │ └── setupTests.js └── readme.md /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "pwa-node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "skipFiles": ["/**"], 12 | "program": "${file}" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/readme.md: -------------------------------------------------------------------------------- 1 | ## https://studio3t.com/ || aggregate 2 | 3 | 4 | ## Schema -> Model -> Query 5 | 6 | - `yarn add validator` 7 | - `yarn add cors` 8 | 9 | - `yarn add multer` 10 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/routes/brand.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const brandController = require('../controllers/brand.controller'); 3 | 4 | const router = express.Router(); 5 | 6 | router 7 | .route('/') 8 | .post(brandController.createBrand) 9 | .get(brandController.getBrands); 10 | 11 | router 12 | .route('/:id') 13 | .get(brandController.getBrandById) 14 | .patch(brandController.updateBrand); 15 | 16 | module.exports = router; 17 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/routes/category.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const categoryController = require('../controllers/category.controller'); 4 | 5 | router 6 | .route('/') 7 | .get(categoryController.getCategories) 8 | .post(categoryController.createCategory); 9 | 10 | module.exports = router; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/routes/store.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const storeController = require('../controllers/store.controller'); 4 | 5 | router 6 | .route('/') 7 | .get(storeController.getStores) 8 | .post(storeController.createStore); 9 | 10 | router.route('/:id').get(storeController.getStoreById); 11 | 12 | module.exports = router; 13 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/services/category.service.js: -------------------------------------------------------------------------------- 1 | const Category = require('../models/Category'); 2 | 3 | exports.getCategoriesService = async () => { 4 | const categories = await Category.find({}); 5 | return categories; 6 | }; 7 | 8 | exports.createCategoryService = async (data) => { 9 | const category = await Category.create(data); 10 | return category; 11 | }; 12 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-10/services/store.service.js: -------------------------------------------------------------------------------- 1 | const Store = require('../models/Store'); 2 | 3 | exports.getStoresService = async () => { 4 | const stores = await Store.find({}); 5 | return stores; 6 | }; 7 | 8 | exports.createStoreService = async (data) => { 9 | const store = await Store.create(data); 10 | return store; 11 | }; 12 | 13 | exports.getStoreByIdService = async (storeId) => { 14 | const store = await Store.find({ _id: storeId }); 15 | return store; 16 | }; 17 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/middleware/authorization.js: -------------------------------------------------------------------------------- 1 | module.exports = (...role) => { 2 | return (req, res, next) => { 3 | const userRole = req.user.role; 4 | if (!role.includes(userRole)) { 5 | return res.status(403).json({ 6 | status: 'fail', 7 | error: 'You are not authorized to access this', 8 | }); 9 | } 10 | 11 | next(); 12 | }; 13 | }; 14 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/routes/brand.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const brandController = require('../controllers/brand.controller'); 3 | 4 | const router = express.Router(); 5 | 6 | router 7 | .route('/') 8 | .post(brandController.createBrand) 9 | .get(brandController.getBrands); 10 | 11 | router 12 | .route('/:id') 13 | .get(brandController.getBrandById) 14 | .patch(brandController.updateBrand); 15 | 16 | module.exports = router; 17 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/routes/category.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const categoryController = require('../controllers/category.controller'); 4 | 5 | router 6 | .route('/') 7 | .get(categoryController.getCategories) 8 | .post(categoryController.createCategory); 9 | 10 | module.exports = router; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/routes/store.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const storeController = require('../controllers/store.controller'); 4 | 5 | router 6 | .route('/') 7 | .get(storeController.getStores) 8 | .post(storeController.createStore); 9 | 10 | router.route('/:id').get(storeController.getStoreById); 11 | 12 | module.exports = router; 13 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/services/category.service.js: -------------------------------------------------------------------------------- 1 | const Category = require('../models/Category'); 2 | 3 | exports.getCategoriesService = async () => { 4 | const categories = await Category.find({}); 5 | return categories; 6 | }; 7 | 8 | exports.createCategoryService = async (data) => { 9 | const category = await Category.create(data); 10 | return category; 11 | }; 12 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/services/store.service.js: -------------------------------------------------------------------------------- 1 | const Store = require('../models/Store'); 2 | 3 | exports.getStoresService = async () => { 4 | const stores = await Store.find({}); 5 | return stores; 6 | }; 7 | 8 | exports.createStoreService = async (data) => { 9 | const store = await Store.create(data); 10 | return store; 11 | }; 12 | 13 | exports.getStoreByIdService = async (storeId) => { 14 | const store = await Store.find({ _id: storeId }); 15 | return store; 16 | }; 17 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/services/user.service.js: -------------------------------------------------------------------------------- 1 | const User = require('../models/User'); 2 | 3 | exports.signupService = async (userInfo) => { 4 | const user = await User.create(userInfo); 5 | return user; 6 | }; 7 | 8 | exports.findUserByEmail = async (email) => { 9 | return await User.findOne({ email }); 10 | }; 11 | 12 | exports.findUserByToken = async (token) => { 13 | return await User.findOne({ confirmationToken: token }); 14 | }; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-11/utils/token.js: -------------------------------------------------------------------------------- 1 | const jwt = require('jsonwebtoken'); 2 | 3 | exports.generateToken = (userInfo) => { 4 | const payload = { 5 | email: userInfo.email, 6 | role: userInfo.role, 7 | }; 8 | 9 | const token = jwt.sign(payload, process.env.JWT_SECRET, { 10 | expiresIn: process.env.JWT_EXPIRE, 11 | }); 12 | return token; 13 | }; 14 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | yarn.lock -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/middleware/errorhandler.js: -------------------------------------------------------------------------------- 1 | const errorHandler = (err, req, res, next) => { 2 | res.send(err.message); 3 | }; 4 | 5 | module.exports = errorHandler; 6 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/middleware/limiter.js: -------------------------------------------------------------------------------- 1 | const { default: rateLimit } = require('express-rate-limit'); 2 | 3 | const limiter = rateLimit({ 4 | windowMs: 15 * 60 * 1000, // 15 minutes 5 | max: 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes) 6 | standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers 7 | legacyHeaders: false, // Disable the `X-RateLimit-*` headers 8 | }); 9 | 10 | module.exports = limiter; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/middleware/veiwCount.js: -------------------------------------------------------------------------------- 1 | let count = 0; 2 | 3 | const viewCount = (req, res, next) => { 4 | count++; 5 | console.log(count); 6 | 7 | // res.send("tools found"); 8 | next(); 9 | }; 10 | 11 | module.exports = viewCount; 12 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | backend-app 8 | 9 | 10 |

this is server file

11 | 12 | 13 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/readme.md: -------------------------------------------------------------------------------- 1 | - `yarn add ejs` -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/utils/dbConnect.js: -------------------------------------------------------------------------------- 1 | function dbConnect() { 2 | const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.roc0q.mongodb.net/?retryWrites=true&w=majority`; 3 | const client = new MongoClient(uri, { 4 | useNewUrlParser: true, 5 | useUnifiedTopology: true, 6 | serverApi: ServerApiVersion.v1, 7 | }); 8 | } 9 | 10 | module.exports = dbConnect; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-3/views/home.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |

this is user: <%= id %>

11 | <% if (user) { %> 12 |

this is <%= user.name %>

13 | <% } %> 14 | 15 | 16 | s -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | yarn.lock -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/middleware/errorhandler.js: -------------------------------------------------------------------------------- 1 | const errorHandler = (err, req, res, next) => { 2 | res.send(err.message); 3 | }; 4 | 5 | module.exports = errorHandler; 6 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/middleware/limiter.js: -------------------------------------------------------------------------------- 1 | const { default: rateLimit } = require('express-rate-limit'); 2 | 3 | const limiter = rateLimit({ 4 | windowMs: 15 * 60 * 1000, // 15 minutes 5 | max: 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes) 6 | standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers 7 | legacyHeaders: false, // Disable the `X-RateLimit-*` headers 8 | }); 9 | 10 | module.exports = limiter; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/middleware/veiwCount.js: -------------------------------------------------------------------------------- 1 | let count = 0; 2 | 3 | const viewCount = (req, res, next) => { 4 | count++; 5 | console.log(count); 6 | 7 | // res.send("tools found"); 8 | next(); 9 | }; 10 | 11 | module.exports = viewCount; 12 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | backend-app 8 | 9 | 10 |

this is server file

11 | 12 | 13 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/readme.md: -------------------------------------------------------------------------------- 1 | - `yarn add ejs` 2 | 3 | ## MongoDB Indexing 4 | 5 | - db.test.createIndex({ age: 1 }) // 1 mean small to big destructuring 6 | 7 | # [note mongodb](https://docs.google.com/document/d/1RQ53DotQfDCjrUTF7-lKyUwzmJ-3kNwRYXLNFDCcuM4/edit?usp=sharing) 8 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-5/views/home.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |

this is user: <%= id %>

11 | <% if (user) { %> 12 |

this is <%= user.name %>

13 | <% } %> 14 | 15 | 16 | s -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-6(inventory)/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-6(inventory)/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-6(inventory)/readme.md: -------------------------------------------------------------------------------- 1 | ## Schema -> Model -> Query 2 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-6(inventory)/routes/product.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | const productController = require('../controllers/product.controller'); 4 | 5 | router 6 | .route('/') 7 | .get(productController.getProducts) 8 | .post(productController.createProduct); 9 | 10 | module.exports = router; 11 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-6(inventory)/services/product.services.js: -------------------------------------------------------------------------------- 1 | const Product = require('../models/Product'); 2 | 3 | exports.getProductsService = async () => { 4 | const products = await Product.find({}); 5 | return products; 6 | }; 7 | 8 | exports.createProductService = async (data) => { 9 | const product = await Product.create(data); 10 | return product; 11 | }; 12 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-7/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-7/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-7/readme.md: -------------------------------------------------------------------------------- 1 | ## Schema -> Model -> Query 2 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-8/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-8/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-8/readme.md: -------------------------------------------------------------------------------- 1 | ## Schema -> Model -> Query 2 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-9/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.env 3 | yarn.lock 4 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-9/config/db.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const connectDB = async () => { 4 | try { 5 | const conn = await mongoose.connect(process.env.MONGO_URI); 6 | 7 | console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline); 8 | } catch (error) { 9 | console.error(`Error: ${error.message}`.red.underline.bold); 10 | process.exit(1); 11 | } 12 | }; 13 | 14 | module.exports = connectDB; 15 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-9/readme.md: -------------------------------------------------------------------------------- 1 | ## Schema -> Model -> Query 2 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/module-9/routes/brand.route.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const brandController = require('../controllers/brand.controller'); 3 | 4 | const router = express.Router(); 5 | 6 | router 7 | .route('/') 8 | .post(brandController.createBrand) 9 | .get(brandController.getBrands); 10 | 11 | router 12 | .route('/:id') 13 | .get(brandController.getBrandById) 14 | .patch(brandController.updateBrand); 15 | 16 | module.exports = router; 17 | -------------------------------------------------------------------------------- /ACC-(Advanced-Node-Express-mongoose)/readme.md: -------------------------------------------------------------------------------- 1 | - module 3: Software architectural pattern - MVC 2 | -------------------------------------------------------------------------------- /ACC-Advanced-github-and-javaScript/module-01/readme.md: -------------------------------------------------------------------------------- 1 | # Module 1: Path to machine code. 2 | 3 | 1. What is JavaScript? 4 | ans: 5 | 6 | 2. What do "interpreted" and "compiled" mean? Difference between interpreters and compilers and JIT. 7 | ans: 8 | 9 | 3. JavaScript engine and runtime at the core. 10 | ans: 11 | 12 | 4. call stack and memory heap. (Stack Overflow, Memory Leaks, and Garbage collection). 13 | ans: 14 | 15 | 5. What does "Single thread" means and what are its limitations? 16 | ans: 17 | -------------------------------------------------------------------------------- /ACC-Advanced-github-and-javaScript/module-03/constructor-function.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const Car = function (brand, price, stock) { 4 | this.brand = brand; 5 | this.price = price; 6 | this.stock = stock; 7 | }; 8 | //* New Empty object {} is created. 9 | //* Function is Called and this = {} 10 | //* empty object is linked to prototype 11 | //* Object is returned. 12 | 13 | const m8 = new Car("BMW", 10, 5); 14 | const modelS = new Car("Tesla", 15, 2); 15 | 16 | console.log(m8); 17 | console.log(modelS); 18 | -------------------------------------------------------------------------------- /ACC-Advanced-github-and-javaScript/module-04/readme.md: -------------------------------------------------------------------------------- 1 | # Module 4: Clouser and Prototypal Inheritance 2 | -------------------------------------------------------------------------------- /ACC-Advanced-github-and-javaScript/readme.md: -------------------------------------------------------------------------------- 1 | # module 1 2 | 3 | - The inner working of JavaScript 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-1:The_foundation/readme.md: -------------------------------------------------------------------------------- 1 | 1. What is Redux? 2 | 3 | 2. How Redux Works? 4 | 5 | 3. Why should we use Redux? 6 | 7 | 4. The 3 pillars of Redux. 8 | 9 | 5. What is React-Redux? 10 | 11 | 6. What is Redux-thunk? 12 | 13 | 7. What is Redux-toolkit? 14 | 15 | 8. Drawbacks of redux. 16 | 17 | 9. When should we use Redux? 18 | 19 | 10. Is there any alternative to Redux? 20 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/README.md: -------------------------------------------------------------------------------- 1 | # module-02: What problem we are solving using redux? 2 | 3 | - `npx create-react-app my-app --template redux` 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/long-form-useReducer/README.md -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/index.js: -------------------------------------------------------------------------------- 1 | //* Immutability 2 | 3 | let player = [{ name: "Shakib" }, { name: "Tamim" }]; 4 | 5 | console.log(player); 6 | 7 | player = [...player, { name: "Mashrafi" }]; 8 | 9 | console.log(player); 10 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/long-form-useReducer/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/long-form-useReducer/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/long-form-useReducer/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/src/App.js: -------------------------------------------------------------------------------- 1 | import LongForm from "./pages/LongForm"; 2 | 3 | function App() { 4 | return ; 5 | } 6 | 7 | export default App; 8 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/src/state/actionTypes.js: -------------------------------------------------------------------------------- 1 | export const actionTypes = { 2 | INPUT: "INPUT", 3 | TOGGLE: "TOGGLE", 4 | }; 5 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/long-form-useReducer/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/README.md: -------------------------------------------------------------------------------- 1 | # Moon-tech-project 2 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/moon-tech-project/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/moon-tech-project/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/moon-tech-project/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/src/App.js: -------------------------------------------------------------------------------- 1 | import { RouterProvider } from "react-router-dom"; 2 | import ProductProvider from "./context/ProductProvider"; 3 | import routes from "./routes/routes"; 4 | 5 | function App() { 6 | return ( 7 |
8 | 9 | 10 | 11 |
12 | ); 13 | } 14 | 15 | export default App; 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/src/layout/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/src/pages/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/src/state/ProductState/actionTypes.js: -------------------------------------------------------------------------------- 1 | export const actionTypes = { 2 | FETCHING_START: "FETCHING_START", 3 | FETCHING_SUCCESS: "FETCHING_SUCCESS", 4 | FETCHING_ERROR: "FETCHING_ERROR", 5 | ADD_TO_CART: "ADD_TO_CART", 6 | ADD_TO_WISHLIST: "ADD_TO_WISHLIST", 7 | REMOVE_FROM_CART: "REMOVE_FROM_CART", 8 | }; -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-project/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-server/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | .vercel 3 | .env 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-mongodb-vercel", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "author": "Mir Hussain", 7 | "scripts": { 8 | "start": "node index.js", 9 | "dev": "nodemon index.js" 10 | }, 11 | "dependencies": { 12 | "cors": "^2.8.5", 13 | "dotenv": "^16.0.3", 14 | "express": "^4.18.2", 15 | "mongodb": "^4.12.0" 16 | }, 17 | "devDependencies": { 18 | "nodemon": "^2.0.20" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/moon-tech-server/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "./index.js", 6 | "use": "@vercel/node" 7 | } 8 | ], 9 | "routes": [ 10 | { 11 | "src": "/(.*)", 12 | "dest": "/" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-2/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-2/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-2/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import { Provider } from 'react-redux'; 4 | import { store } from './app/store'; 5 | import App from './App'; 6 | 7 | test('renders learn react link', () => { 8 | const { getByText } = render( 9 | 10 | 11 | 12 | ); 13 | 14 | expect(getByText(/learn/i)).toBeInTheDocument(); 15 | }); 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/app/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from '@reduxjs/toolkit'; 2 | import counterReducer from '../features/counter/counterSlice'; 3 | 4 | export const store = configureStore({ 5 | reducer: { 6 | counter: counterReducer, 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/features/counter/counterAPI.js: -------------------------------------------------------------------------------- 1 | // A mock function to mimic making an async request for data 2 | export function fetchCount(amount = 1) { 3 | return new Promise((resolve) => 4 | setTimeout(() => resolve({ data: amount }), 500) 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-2/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-3/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-3/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-3/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-3/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-3/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-3/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/readme.md: -------------------------------------------------------------------------------- 1 | # Getting started with React-Redux 2 | 3 | - `yarn add redux react-redux` 4 | - [redux-devtools-integration](https://github.com/reduxjs/redux-devtools/tree/main/extension#installation) 5 | - `yarn add @redux-devtools/extension` 6 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from "react-redux"; 2 | import { RouterProvider } from "react-router-dom"; 3 | import store from "./redux/store"; 4 | import routes from "./routes/routes"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 | 11 | 12 |
13 | ); 14 | } 15 | 16 | export default App; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/layout/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/pages/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/pages/TopRated.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const TopRated = () => { 4 | return ( 5 |
6 |

This is featured page

7 |
8 | ); 9 | }; 10 | 11 | export default TopRated; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/redux/actionCreators/productActions.js: -------------------------------------------------------------------------------- 1 | import { ADD_TO_CART, REMOVE_TO_CART } from "../actionTypes/actionTypes"; 2 | 3 | export const addToCart = (product) => { 4 | return { 5 | type: ADD_TO_CART, 6 | payload: product, 7 | }; 8 | }; 9 | export const removeToCart = (product) => { 10 | return { 11 | type: REMOVE_TO_CART, 12 | payload: product, 13 | }; 14 | }; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/redux/actionTypes/actionTypes.js: -------------------------------------------------------------------------------- 1 | export const ADD_TO_CART = "ADD_TO_CART"; 2 | export const REMOVE_TO_CART = "REMOVE_TO_CART"; 3 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/src/redux/store.js: -------------------------------------------------------------------------------- 1 | import { createStore } from "redux"; 2 | import productReducer from "./reducers/productReducer"; 3 | import { composeWithDevTools } from "@redux-devtools/extension"; 4 | 5 | const store = createStore(productReducer, composeWithDevTools()); 6 | 7 | export default store; 8 | -------------------------------------------------------------------------------- /ACC-Redux/module-3/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/moon-tech-server/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | .vercel 3 | .env 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/moon-tech-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-mongodb-vercel", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "author": "Mir Hussain", 7 | "scripts": { 8 | "start": "node index.js", 9 | "dev": "nodemon index.js" 10 | }, 11 | "dependencies": { 12 | "cors": "^2.8.5", 13 | "dotenv": "^16.0.3", 14 | "express": "^4.18.2", 15 | "mongodb": "^4.12.0" 16 | }, 17 | "devDependencies": { 18 | "nodemon": "^2.0.20" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/moon-tech-server/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "./index.js", 6 | "use": "@vercel/node" 7 | } 8 | ], 9 | "routes": [ 10 | { 11 | "src": "/(.*)", 12 | "dest": "/" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-4/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-4/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-4/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-4/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-4/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-4/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/readme.md: -------------------------------------------------------------------------------- 1 | # Module 4: Redux-thunk 2 | 3 | - `yarn add redux-logger` 4 | - `yarn add redux-thunk` 5 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from "react-redux"; 2 | import { RouterProvider } from "react-router-dom"; 3 | import store from "./redux/store"; 4 | import routes from "./routes/routes"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 | 11 | 12 |
13 | ); 14 | } 15 | 16 | export default App; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/layout/Dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Sidebar from "./Sidebar"; 4 | 5 | const Dashboard = () => { 6 | return ( 7 |
8 | 9 |
10 | 11 |
12 |
13 | ); 14 | }; 15 | 16 | export default Dashboard; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/layout/Main/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/pages/Main/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/pages/Main/TopRated.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const TopRated = () => { 4 | return ( 5 |
6 |

This is featured page

7 |
8 | ); 9 | }; 10 | 11 | export default TopRated; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/redux/actionTypes/actionTypes.js: -------------------------------------------------------------------------------- 1 | export const ADD_TO_CART = "ADD_TO_CART"; 2 | export const PRODUCT_LOADED = "PRODUCT_LOADED"; 3 | export const REMOVE_FROM_CART = "REMOVE_FROM_CART"; 4 | export const LOAD_PRODUCT = "LOAD_PRODUCT"; 5 | export const ADD_PRODUCT = "ADD_PRODUCT"; 6 | export const REMOVE_PRODUCT = "REMOVE_PRODUCT"; 7 | 8 | //* For filters 9 | 10 | export const TOGGLE_BRAND = "TOGGLE_BRAND"; 11 | export const TOGGLE_STOCK = "TOGGLE_STOCK"; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/redux/actions/filterActions.js: -------------------------------------------------------------------------------- 1 | import { TOGGLE_BRAND, TOGGLE_STOCK } from "../actionTypes/actionTypes"; 2 | 3 | export const toggleBrand = (brandName) => { 4 | return { 5 | type: TOGGLE_BRAND, 6 | payload: brandName, 7 | }; 8 | }; 9 | 10 | export const toggleStock = () => { 11 | return { 12 | type: TOGGLE_STOCK, 13 | }; 14 | }; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/redux/reducers/rootReducer.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from "redux"; 2 | import { filterReducer } from "./filterReducer"; 3 | import productReducer from "./productReducer"; 4 | 5 | const rootReducer = combineReducers({ 6 | product: productReducer, 7 | filter: filterReducer, 8 | }); 9 | 10 | export default rootReducer; 11 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/redux/store.js: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware } from "redux"; 2 | import { composeWithDevTools } from "@redux-devtools/extension"; 3 | import rootReducer from "./reducers/rootReducer"; 4 | import cartCounter from "./middlewares/cartCounter"; 5 | import thunk from "redux-thunk"; 6 | 7 | const store = createStore( 8 | rootReducer, 9 | composeWithDevTools(applyMiddleware(cartCounter, thunk)) 10 | ); 11 | 12 | export default store; 13 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/src/redux/thunk/products/fetchProducts.js: -------------------------------------------------------------------------------- 1 | import { loadProduct } from "../../actions/productAction"; 2 | 3 | const loadProductData = () => { 4 | return async (dispatch, getState) => { 5 | const res = await fetch("http://localhost:5000/products"); 6 | const data = await res.json(); 7 | 8 | if (data.data.length) { 9 | dispatch(loadProduct(data.data)); 10 | } 11 | }; 12 | }; 13 | 14 | export default loadProductData; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-4/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-5/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-5/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-5/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from "react-redux"; 2 | import { RouterProvider } from "react-router-dom"; 3 | import store from "./app/store"; 4 | import routes from "./routes/routes"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 | 11 | 12 |
13 | ); 14 | } 15 | 16 | export default App; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/layout/Dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Sidebar from "./Sidebar"; 4 | 5 | const Dashboard = () => { 6 | return ( 7 |
8 | 9 |
10 | 11 |
12 |
13 | ); 14 | }; 15 | 16 | export default Dashboard; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/layout/Main/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/pages/Main/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/src/pages/Main/TopRated.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const TopRated = () => { 4 | return ( 5 |
6 |

This is featured page

7 |
8 | ); 9 | }; 10 | 11 | export default TopRated; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/testing-redux-toolkit/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/testing-redux-toolkit/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-5/testing-redux-toolkit/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import { Provider } from 'react-redux'; 4 | import { store } from './app/store'; 5 | import App from './App'; 6 | 7 | test('renders learn react link', () => { 8 | const { getByText } = render( 9 | 10 | 11 | 12 | ); 13 | 14 | expect(getByText(/learn/i)).toBeInTheDocument(); 15 | }); 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/app/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import counterSlice from "../features/counter/counterSlice"; 3 | 4 | export const store = configureStore({ 5 | reducer: { 6 | counter: counterSlice, 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/features/counter/counterAPI.js: -------------------------------------------------------------------------------- 1 | // A mock function to mimic making an async request for data 2 | export function fetchCount(amount = 1) { 3 | return new Promise((resolve) => 4 | setTimeout(() => resolve({ data: amount }), 500) 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-5/testing-redux-toolkit/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/RTK-query/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/RTK-query/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/RTK-query/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from "react-redux"; 2 | import { RouterProvider } from "react-router-dom"; 3 | import store from "./app/store"; 4 | import routes from "./routes/routes"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 | 11 | 12 |
13 | ); 14 | } 15 | 16 | export default App; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/layout/Dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Sidebar from "./Sidebar"; 4 | 5 | const Dashboard = () => { 6 | return ( 7 |
8 | 9 |
10 | 11 |
12 |
13 | ); 14 | }; 15 | 16 | export default Dashboard; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/layout/Main/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/pages/Main/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/src/pages/Main/TopRated.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const TopRated = () => { 4 | return ( 5 |
6 |

This is featured page

7 |
8 | ); 9 | }; 10 | 11 | export default TopRated; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/RTK-query/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-6/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-6/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-6/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-6/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/readme.md: -------------------------------------------------------------------------------- 1 | # Module-6: RTK Query 2 | 3 | # Package: 4 | 5 | - `yarn add axios` 6 | - `yarn add react-hot-toast` 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/App.js: -------------------------------------------------------------------------------- 1 | import { Toaster } from "react-hot-toast"; 2 | import { Provider } from "react-redux"; 3 | import { RouterProvider } from "react-router-dom"; 4 | import store from "./app/store"; 5 | import routes from "./routes/routes"; 6 | 7 | function App() { 8 | return ( 9 |
10 | 11 | 12 | 13 | 14 |
15 | ); 16 | } 17 | 18 | export default App; 19 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/features/products/productsAPI.js: -------------------------------------------------------------------------------- 1 | import axios from "../../utils/axios.config"; 2 | 3 | export const fetchProducts = async () => { 4 | const data = await axios.get("/products"); 5 | return data.data.data; 6 | }; 7 | 8 | export const postProduct = async (productData) => { 9 | await axios.post("/product", productData); 10 | }; 11 | export const deleteProduct = async (id) => { 12 | await axios.delete(`/product/${id}`); 13 | }; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | 6 | const root = ReactDOM.createRoot(document.getElementById("root")); 7 | root.render( 8 | 9 | 10 | 11 | ); 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/layout/Dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Sidebar from "./Sidebar"; 4 | 5 | const Dashboard = () => { 6 | return ( 7 |
8 | 9 |
10 | 11 |
12 |
13 | ); 14 | }; 15 | 16 | export default Dashboard; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/layout/Main/Main.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Navbar from "./Navbar"; 4 | 5 | const Main = () => { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Main; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/pages/Main/About.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const About = () => { 4 | return ( 5 |
6 |

This is about page

7 |
8 | ); 9 | }; 10 | 11 | export default About; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/pages/Main/TopRated.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const TopRated = () => { 4 | return ( 5 |
6 |

This is featured page

7 |
8 | ); 9 | }; 10 | 11 | export default TopRated; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/src/utils/axios.config.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | let URL; 4 | 5 | switch (process.env.REACT_APP_ENVIRONMENT) { 6 | case "DEVELOPMENT": 7 | URL = "http://localhost:5000/"; 8 | break; 9 | case "PRODUCTION": 10 | URL = "https://vercel.com"; 11 | break; 12 | default: 13 | URL = "http://localhost:5000/"; 14 | } 15 | const instance = axios.create({ 16 | baseURL: URL, 17 | }); 18 | 19 | export default instance; 20 | -------------------------------------------------------------------------------- /ACC-Redux/module-6/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [require("@tailwindcss/forms")], 8 | }; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/README.md: -------------------------------------------------------------------------------- 1 | # Job Box Project 2 | 3 | ## Tech Stack: 4 | 5 | - React Redux RTK Query 6 | 7 | ## Package: 8 | 9 | - `yarn add @reduxjs/toolkit react-redux` 10 | - `yarn add firebase` 11 | - `yarn add react-hot-toast` 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/jobbox-server/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | .env -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/jobbox-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jobbox", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node index.js", 8 | "dev": "nodemon index.js" 9 | }, 10 | "dependencies": { 11 | "cors": "^2.8.5", 12 | "dotenv": "^16.0.3", 13 | "express": "^4.18.2", 14 | "mongodb": "^4.13.0" 15 | }, 16 | "devDependencies": { 17 | "nodemon": "^2.0.20" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/app/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import apiSlice from "../feature/api/apiSlice"; 3 | import authSlice from "../feature/auth/authSlice"; 4 | 5 | const store = configureStore({ 6 | reducer: { 7 | [apiSlice.reducerPath]: apiSlice.reducer, 8 | auth: authSlice, 9 | }, 10 | middleware: (getDefaultMiddleware) => 11 | getDefaultMiddleware().concat(apiSlice.middleware), 12 | }); 13 | 14 | export default store; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-01.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-02.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-03.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-1.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-2.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-3.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-4.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-5.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-6.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/hero-logo-7.png -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/loading.gif -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/assets/meeting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-7(final-project-part-1)/src/assets/meeting.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/components/reusable/Badge.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Badge = ({ children, className }) => { 4 | return ( 5 |
8 |

{children}

9 |
10 | ); 11 | }; 12 | 13 | export default Badge; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/feature/api/apiSlice.js: -------------------------------------------------------------------------------- 1 | import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; 2 | 3 | const apiSlice = createApi({ 4 | reducerPath: "api", 5 | baseQuery: fetchBaseQuery({ 6 | baseUrl: process.env.REACT_APP_DEV_URL, 7 | }), 8 | endpoints: (builder) => ({}), 9 | }); 10 | 11 | export default apiSlice; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/feature/auth/authApi.js: -------------------------------------------------------------------------------- 1 | import apiSlice from "../api/apiSlice"; 2 | 3 | const authApi = apiSlice.injectEndpoints({ 4 | endpoints: (builder) => 5 | apiSlice({ 6 | register: builder.mutation({ 7 | query: (data) => ({ 8 | method: "POST", 9 | url: "/user", 10 | body: data, 11 | }), 12 | }), 13 | }), 14 | }); 15 | 16 | export const { useRegisterMutation } = authApi; 17 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | import { Provider } from "react-redux"; 6 | import store from "./app/store"; 7 | 8 | const root = ReactDOM.createRoot(document.getElementById("root")); 9 | root.render( 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/pages/candidateDashboard/CandidateDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CandidateDashboard = () => { 4 | return ( 5 |
6 |

This is candidate dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default CandidateDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/pages/employeeDashboard/EmployerDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const EmployerDashboard = () => { 4 | return ( 5 |
6 |

This is Employer Dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default EmployerDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/src/pages/home/Home.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Landing from "./Landing"; 3 | 4 | const Home = () => { 5 | return ; 6 | }; 7 | 8 | export default Home; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-7(final-project-part-1)/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: { 6 | colors: { 7 | primary: "#691f74", 8 | secondary: "#FFF0D9", 9 | }, 10 | }, 11 | }, 12 | plugins: [require("@tailwindcss/forms")], 13 | }; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/README.md: -------------------------------------------------------------------------------- 1 | # Job Box Project 2 | 3 | ## Tech Stack: 4 | 5 | - React Redux RTK Query 6 | 7 | ## Package: 8 | 9 | - `yarn add @reduxjs/toolkit react-redux` 10 | - `yarn add firebase` 11 | - `yarn add react-hot-toast` 12 | 13 | --- 14 | 15 | #### vercel deploy 16 | 17 | - `vercel login --github` 18 | - 19 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/app/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import apiSlice from "../feature/api/apiSlice"; 3 | import authSlice from "../feature/auth/authSlice"; 4 | 5 | const store = configureStore({ 6 | reducer: { 7 | [apiSlice.reducerPath]: apiSlice.reducer, 8 | auth: authSlice, 9 | }, 10 | middleware: (getDefaultMiddleware) => 11 | getDefaultMiddleware().concat(apiSlice.middleware), 12 | }); 13 | 14 | export default store; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-01.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-02.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-03.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-1.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-2.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-3.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-4.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-5.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-6.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/hero-logo-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/hero-logo-7.png -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/loading.gif -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/assets/meeting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-8(part-2)/src/assets/meeting.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/components/reusable/Badge.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Badge = ({ children, className }) => { 4 | return ( 5 |
8 |

{children}

9 |
10 | ); 11 | }; 12 | 13 | export default Badge; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/feature/api/apiSlice.js: -------------------------------------------------------------------------------- 1 | import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; 2 | 3 | const apiSlice = createApi({ 4 | reducerPath: "api", 5 | baseQuery: fetchBaseQuery({ 6 | baseUrl: process.env.REACT_APP_DEV_URL, 7 | // baseUrl: "https://backend-rho-lyart.vercel.app/", 8 | }), 9 | endpoints: (builder) => ({}), 10 | }); 11 | 12 | export default apiSlice; 13 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | import { Provider } from "react-redux"; 6 | import store from "./app/store"; 7 | 8 | const root = ReactDOM.createRoot(document.getElementById("root")); 9 | root.render( 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/layout/dashboard/Dashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Outlet } from "react-router-dom"; 3 | import Sidebar from "./Sidebar"; 4 | 5 | const Dashboard = () => { 6 | return ( 7 |
8 | 9 |
10 |
11 | 12 |
13 |
14 |
15 | ); 16 | }; 17 | 18 | export default Dashboard; 19 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/pages/candidateDashboard/CandidateDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CandidateDashboard = () => { 4 | return ( 5 |
6 |

This is candidate dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default CandidateDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/pages/employeeDashboard/EmployerDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const EmployerDashboard = () => { 4 | return ( 5 |
6 |

This is Employer Dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default EmployerDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/src/pages/home/Home.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Landing from "./Landing"; 3 | 4 | const Home = () => { 5 | return ; 6 | }; 7 | 8 | export default Home; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-8(part-2)/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: { 6 | colors: { 7 | primary: "#691f74", 8 | secondary: "#FFF0D9", 9 | }, 10 | }, 11 | }, 12 | plugins: [require("@tailwindcss/forms")], 13 | }; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/README.md: -------------------------------------------------------------------------------- 1 | # Job Box Project 2 | 3 | ## Tech Stack: 4 | 5 | - React Redux RTK Query 6 | 7 | ## Package: 8 | 9 | - `yarn add @reduxjs/toolkit react-redux` 10 | - `yarn add firebase` 11 | - `yarn add react-hot-toast` 12 | 13 | --- 14 | 15 | #### vercel deploy 16 | 17 | - `vercel login --github` 18 | - 19 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/public/favicon.ico -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/public/logo192.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/public/logo512.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/app/store.js: -------------------------------------------------------------------------------- 1 | import { configureStore } from "@reduxjs/toolkit"; 2 | import apiSlice from "../feature/api/apiSlice"; 3 | import authSlice from "../feature/auth/authSlice"; 4 | 5 | const store = configureStore({ 6 | reducer: { 7 | [apiSlice.reducerPath]: apiSlice.reducer, 8 | auth: authSlice, 9 | }, 10 | middleware: (getDefaultMiddleware) => 11 | getDefaultMiddleware().concat(apiSlice.middleware), 12 | }); 13 | 14 | export default store; 15 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-01.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-02.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-03.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-1.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-2.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-3.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-4.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-5.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-6.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/hero-logo-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/hero-logo-7.png -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/loading.gif -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/assets/meeting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/ACC-Redux/module-9(part-3)/src/assets/meeting.jpg -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/components/reusable/Badge.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Badge = ({ children, className }) => { 4 | return ( 5 |
8 |

{children}

9 |
10 | ); 11 | }; 12 | 13 | export default Badge; 14 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/feature/api/apiSlice.js: -------------------------------------------------------------------------------- 1 | import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; 2 | 3 | const apiSlice = createApi({ 4 | reducerPath: "api", 5 | baseQuery: fetchBaseQuery({ 6 | baseUrl: process.env.REACT_APP_DEV_URL, 7 | }), 8 | tagTypes: ["Jobs", "Job"], 9 | endpoints: (builder) => ({}), 10 | }); 11 | 12 | export default apiSlice; 13 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | import { Provider } from "react-redux"; 6 | import store from "./app/store"; 7 | 8 | const root = ReactDOM.createRoot(document.getElementById("root")); 9 | root.render( 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/pages/candidateDashboard/CandidateDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const CandidateDashboard = () => { 4 | return ( 5 |
6 |

This is candidate dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default CandidateDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/pages/employeeDashboard/EmployerDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const EmployerDashboard = () => { 4 | return ( 5 |
6 |

This is Employer Dashboard

7 |
8 | ); 9 | }; 10 | 11 | export default EmployerDashboard; 12 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/src/pages/home/Home.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Landing from "./Landing"; 3 | 4 | const Home = () => { 5 | return ; 6 | }; 7 | 8 | export default Home; 9 | -------------------------------------------------------------------------------- /ACC-Redux/module-9(part-3)/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./src/**/*.{js,jsx,ts,tsx}"], 4 | theme: { 5 | extend: { 6 | colors: { 7 | primary: "#691f74", 8 | secondary: "#FFF0D9", 9 | }, 10 | }, 11 | }, 12 | plugins: [require("@tailwindcss/forms")], 13 | }; 14 | -------------------------------------------------------------------------------- /img/acc-node.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/img/acc-node.jpg -------------------------------------------------------------------------------- /img/acc-redux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/img/acc-redux.jpg -------------------------------------------------------------------------------- /img/js-git-mir-vai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/img/js-git-mir-vai.jpg -------------------------------------------------------------------------------- /milestone-1/module-3_git/readme.md: -------------------------------------------------------------------------------- 1 | # module3_git 2 | 3 | `git config --global user.email ""` 4 | `git config --global user.name ""` 5 | 6 | [Git-Commands](https://github.com/joshnh/Git-Commands) 7 | `git branch (branch-name)` 8 | `git branch (git branch check)` 9 | `git -checkout image-add (change branch)` 10 | 11 | `git push --set-upstream origin image-add` 12 | `git -checkout main` 13 | `git merge image-add` 14 | `git checkout -b branchName (create a new branch and switch to it.)` 15 | -------------------------------------------------------------------------------- /milestone-1/readme.md: -------------------------------------------------------------------------------- 1 | # Milestone-1 2 | -------------------------------------------------------------------------------- /milestone-1/simple-dev-portfolio/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /milestone-1/simple-dev-portfolio/readme.md: -------------------------------------------------------------------------------- 1 | # simple-dev-portfolio 2 | 3 | -------------------------------------------------------------------------------- /milestone-1/simple-dev-portfolio/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-1/simple-dev-portfolio/style.css -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/email-password-auth-react/public/favicon.ico -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/email-password-auth-react/public/logo192.png -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/email-password-auth-react/public/logo512.png -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-10/email-password-auth-react/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/react-google-map/public/favicon.ico -------------------------------------------------------------------------------- /milestone-10/react-google-map/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/react-google-map/public/logo192.png -------------------------------------------------------------------------------- /milestone-10/react-google-map/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/react-google-map/public/logo512.png -------------------------------------------------------------------------------- /milestone-10/react-google-map/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-10/react-google-map/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-10/readme.md: -------------------------------------------------------------------------------- 1 | # Milestone 10: React Authentication 2 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/README.md: -------------------------------------------------------------------------------- 1 | # Tech Geeks 2 | 3 | - All Blogs Link : 4 | - Single Blog: 5 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/tech-geeks-firebase/public/favicon.ico -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/tech-geeks-firebase/public/logo192.png -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/tech-geeks-firebase/public/logo512.png -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/src/App.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | padding: 0; 4 | margin: 0; 5 | } 6 | 7 | body { 8 | font-family: "Raleway", sans-serif; 9 | } 10 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/src/Assets/Image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-10/tech-geeks-firebase/src/Assets/Image/logo.png -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/src/Components/Home/Home.css: -------------------------------------------------------------------------------- 1 | .blogs-container { 2 | width: 1000px; 3 | margin: 0 auto; 4 | } 5 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/src/Components/Videos/Videos.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Videos = () => { 4 | return ( 5 |
6 |

This is videos page

7 | {/* */} 15 |
16 | ); 17 | }; 18 | 19 | export default Videos; 20 | -------------------------------------------------------------------------------- /milestone-10/tech-geeks-firebase/src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOMClient from "react-dom/client"; 3 | import App from "./App"; 4 | import { BrowserRouter } from "react-router-dom"; 5 | 6 | const container = document.getElementById("root"); 7 | 8 | const root = ReactDOMClient.createRoot(container); 9 | 10 | root.render( 11 | 12 | 13 | 14 | 15 | 16 | ); 17 | -------------------------------------------------------------------------------- /milestone-11/first-node/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-11/first-node/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const port = process.env.PORT || 5000; 4 | 5 | app.get('/', (req, res) => { 6 | res.send(`hi there. I can code Node now!!!`); 7 | }); 8 | 9 | app.listen(port, () => { 10 | console.log('Listening to port', port); 11 | }); 12 | -------------------------------------------------------------------------------- /milestone-11/first-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "first-node", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "al mamun khan", 10 | "license": "ISC", 11 | "dependencies": { 12 | "express": "^4.17.3" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /milestone-11/smarty-node/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | node modules 5 | /node_modules 6 | /.pnp 7 | .pnp.js 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 | -------------------------------------------------------------------------------- /milestone-11/smarty-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "smarty-node", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js", 8 | "start-dev": "node index.js", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "dependencies": { 15 | "cors": "^2.8.5", 16 | "express": "^4.17.3" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/icons/marker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/appointment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/appointment.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/bg.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/cavity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/cavity.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/chair.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/doctor-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/doctor-small.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/doctor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/doctor.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/dribbble_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/dribbble_1.gif -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/fluoride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/fluoride.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/footer.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/login.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/people1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/people1.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/people2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/people2.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/people3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/people3.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/treatment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/treatment.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/assets/images/whitening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/assets/images/whitening.png -------------------------------------------------------------------------------- /milestone-12/doctors-portal/doctors-portal.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-12/doctors-portal/doctors-portal.fig -------------------------------------------------------------------------------- /milestone-12/readme.md: -------------------------------------------------------------------------------- 1 | # typeScript 2 | - url : https://github.com/progmamun/TypeScript 3 | -------------------------------------------------------------------------------- /milestone-13/readme.md: -------------------------------------------------------------------------------- 1 | # Intermediate React 2 | 3 | ## React Native https://github.com/progmamun/React-Native 4 | ## NextJs https://github.com/progmamun/Next.js 5 | -------------------------------------------------------------------------------- /milestone-2/img/bat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-2/img/bat.jpg -------------------------------------------------------------------------------- /milestone-3/readme.md: -------------------------------------------------------------------------------- 1 | ## css framework 2 | 3 | ## Bootstrap Front-end framework 4 | 5 | ## responsive emmit shortcut 6 | 7 | - .col-lg-3.col-md-4.col-sm-6.col-12\*12>img.img-fluid[src="img/players/player-$.png"]+h3{player-$}+p>lorem 8 | -------------------------------------------------------------------------------- /milestone-4/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "pwa-node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "skipFiles": ["/**"], 12 | "program": "${file}" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /milestone-4/break-continue.js: -------------------------------------------------------------------------------- 1 | let numbers = [55, 25, 23, 97, 101, 54, 65]; 2 | 3 | for (let i = 0; i < numbers.length; i++) { 4 | let number = numbers[i]; 5 | if (number > 90) { 6 | // break; 7 | continue; 8 | } 9 | console.log(number); 10 | } 11 | -------------------------------------------------------------------------------- /milestone-4/factorial.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let factorial = 1; 4 | for (let i = 1; i <= 7; i++) { 5 | factorial = factorial * i; 6 | } 7 | console.log(factorial); 8 | -------------------------------------------------------------------------------- /milestone-4/for-loop.js: -------------------------------------------------------------------------------- 1 | // for loop 2 | for (var i = 0; i < 15; i++) { 3 | console.log(i); 4 | } 5 | -------------------------------------------------------------------------------- /milestone-4/homework/celsiustofahrenheit.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function celsiusToFahrenheit(celsius) { 4 | let fahrenheit = (celsius * 9) / 5 + 32; 5 | return fahrenheit; 6 | } 7 | 8 | let far = celsiusToFahrenheit(3); 9 | console.log(`Fahrenheit is: ${far}`); 10 | -------------------------------------------------------------------------------- /milestone-4/homework/farenheittocelcius.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function farenheitToCelcius(fahrenheit) { 4 | let celsius = ((fahrenheit - 32) * 5) / 9; 5 | return celsius; 6 | } 7 | 8 | let cels = farenheitToCelcius(44); 9 | console.log(`Celsius is: ${cels}`); 10 | -------------------------------------------------------------------------------- /milestone-4/homework/simpleInterest.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // p*n*r/100; 4 | let calculateInterest = function (total, years, ratePercent, roundToPlaces) { 5 | let interestRate = ratePercent / 100 + 1; 6 | return (total * Math.pow(interestRate, years)).toFixed(roundToPlaces); 7 | }; 8 | 9 | let answer = calculateInterest(915, 13, 2, 2); 10 | console.log(answer); 11 | -------------------------------------------------------------------------------- /milestone-4/inchTofeet.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | // mile to km 3 | function mileToKilometer(miles) { 4 | let km = miles * 1.60934; 5 | return km; 6 | } 7 | 8 | let marathon = mileToKilometer(26.2); 9 | console.log(`Marthon in km: ${marathon}`); 10 | -------------------------------------------------------------------------------- /milestone-4/js-note.md: -------------------------------------------------------------------------------- 1 | # js-basics-note 2 | 3 | - string write into two or single quote "", ' '; 4 | - array write into- [ 1, 2, 3]; 5 | - `indexOf` check number position or something. 6 | - `typeOf` check which type of value is. 7 | - `push()` অ্যারের শেষে এক বা একাধিক উপাদান যোগ করে এবং অ্যারের নতুন দৈর্ঘ্য প্রদান করে। add value to array 8 | - `pop()` একটি অ্যারে থেকে শেষ উপাদানটি বের করে দেয়। remove from array 9 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/divisible-by.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | for (let i = 1; i <= 50; i++) { 4 | if (i % 3 == 0 && i % 5 == 0) { 5 | console.log('foobar'); 6 | } else if (i % 3 == 0) { 7 | console.log('foo'); 8 | } else if (i % 5 == 0) { 9 | console.log('bar'); 10 | } else { 11 | console.log(i); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/fibonacci.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fibo = [0, 1]; 4 | 5 | for (let i = 2; i <= 10; i++) { 6 | fibo[i] = fibo[i - 1] + fibo[i - 2]; 7 | } 8 | 9 | console.log(fibo); 10 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/fibonacciSerics.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function fibonacciSeries(num) { 4 | if (typeof num != 'number') { 5 | return 'Please give a number'; 6 | } 7 | if (num < 2) { 8 | return 'Please enter a positive number greater than 1'; 9 | } 10 | 11 | const fibo = [0, 1]; 12 | for (let i = 2; i < num; i++) { 13 | fibo[i] = fibo[i - 1] + fibo[i - 2]; 14 | } 15 | return fibo; 16 | } 17 | 18 | const fiboSeries = fibonacciSeries(8); 19 | console.log(fiboSeries); 20 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/largest-element.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function largestElement(numbers) { 4 | let largest = numbers[0]; 5 | 6 | for (let i = 0; i < numbers.length; i++) { 7 | const element = numbers[i]; 8 | if (element > largest) { 9 | largest = element; 10 | } 11 | } 12 | return largest; 13 | } 14 | 15 | const ages = [12, 54, 3, 35, 79, 35, 12]; 16 | const oldest = largestElement(ages); 17 | console.log('oldest', oldest); 18 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/module-23/assignment04.js: -------------------------------------------------------------------------------- 1 | // move into private repository 2 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/quiz-more-js-problem.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // let sum = 0; 4 | // for (let i = 0; i <= 3; i++) { 5 | // sum = sum + i; 6 | // } 7 | // console.log(sum); 8 | 9 | // function inchToFeet(inch) { 10 | // var feet = inch / 12; 11 | // return feet; 12 | // } 13 | 14 | function leapYear(year) { 15 | const reminder = year % 4; 16 | if (reminder == 0) { 17 | return true; 18 | } else { 19 | return false; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/string-reverse.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const greetings = 'Hello, how are you?'; 4 | 5 | function reverseString(text) { 6 | let reverse = ''; // null string lowest value 7 | for (const letter of text) { 8 | // console.log(letter); 9 | reverse = letter + reverse; 10 | } 11 | return reverse; 12 | } 13 | const reversed = reverseString(greetings); 14 | console.log(reversed); 15 | -------------------------------------------------------------------------------- /milestone-4/js-simple-problem/swap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | let first = 7; 3 | let second = 5; 4 | 5 | // first method 6 | // let temp = first; 7 | // first = second; 8 | // second = temp; 9 | // console.log(first, second); 10 | 11 | // destructuring 12 | // [first, second] = [second, first]; 13 | // console.log(first, second); 14 | -------------------------------------------------------------------------------- /milestone-4/object-property.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let computer = { 4 | price: 20000, 5 | storage: '156GB', 6 | color: 'white', 7 | processor: 'intel i7', 8 | }; 9 | let priceProperty = 'price'; 10 | computer[priceProperty] = 19900; 11 | 12 | computer.price = 2200; 13 | computer['price'] = 2300; 14 | 15 | console.log(computer); 16 | -------------------------------------------------------------------------------- /milestone-4/quiz-condition.js: -------------------------------------------------------------------------------- 1 | var cokePrice = 17; 2 | var isHot = true; 3 | 4 | if (cokePrice < 15) { 5 | console.log('coke khabo'); 6 | } else if (isHot == true) { 7 | console.log('ami hot'); 8 | } else { 9 | console.log('pani khabo'); 10 | } 11 | -------------------------------------------------------------------------------- /milestone-4/quiz-function.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function addNumber(number1, number2) { 4 | return 'Result is ' + number1 + number2; 5 | } 6 | 7 | let result = addNumber(5, 4); 8 | console.log(result); 9 | -------------------------------------------------------------------------------- /milestone-4/quiz-loop.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var friends = []; 3 | for (var i = 0; i < friends.length; i++); 4 | 5 | for (var i = 0; i < 10; i++) { 6 | console.log('Roast den, Please!!!'); 7 | } 8 | -------------------------------------------------------------------------------- /milestone-4/quiz-mathematical-operation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | // var num1 = '99.5'; 3 | // var num2 = 15; 4 | 5 | // var num3 = parseInt(num1); 6 | 7 | // console.log(num3 + num2); 8 | 9 | var num1 = '99.5'; 10 | var num2 = 15; 11 | console.log(num1 + num2); 12 | -------------------------------------------------------------------------------- /milestone-4/recursion.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function consoleNumber(i) { 4 | if (i > 5) { 5 | return; 6 | } 7 | console.log(i); 8 | consoleNumber(i + 1); 9 | } 10 | consoleNumber(1); 11 | 12 | // sum 13 | function sum(i) { 14 | if (i == 1) { 15 | return 1; 16 | } 17 | return i + sum(--i); 18 | } 19 | console.log(sum(5)); 20 | 21 | function factorial(i) { 22 | if (i == 1) { 23 | return 1; 24 | } 25 | return i * factorial(--i); 26 | } 27 | 28 | console.log(factorial(4)); 29 | -------------------------------------------------------------------------------- /milestone-4/var-convert.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | let onionPrice = '42.50'; 3 | let eggPrice = '41.33'; 4 | let onionPriceNumber = parseFloat(onionPrice); 5 | let eggPriceNumber = parseInt(eggPrice); 6 | // console.log(onionPriceNumber); 7 | console.log(eggPriceNumber + onionPriceNumber); 8 | -------------------------------------------------------------------------------- /milestone-4/while_loop.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | let roastGiven = 0; 3 | 4 | while (roastGiven < 7) { 5 | console.log('Roast den, Please!!!'); 6 | roastGiven++; 7 | console.log(roastGiven); 8 | } 9 | -------------------------------------------------------------------------------- /milestone-5/eventBuble.js: -------------------------------------------------------------------------------- 1 | document 2 | .getElementById('second-item') 3 | .addEventListener('click', function (event) { 4 | // event.stopPropagation(); 5 | event.stopImmediatePropagation(); 6 | }); 7 | -------------------------------------------------------------------------------- /milestone-5/quiz-01.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // document.getElementById('h1').style.fontSize = '30px'; 4 | 5 | const ul = document.getElementById('ul'); 6 | const li = document.createElement('li'); 7 | li.innerHTML = `New item in the list`; 8 | ul.appendChild(li); 9 | 10 | // document.querySelectorAll('.blog h2'); 11 | -------------------------------------------------------------------------------- /milestone-5/quiz-02.js: -------------------------------------------------------------------------------- 1 | { 2 | /* */ 3 | } 4 | document.getElementById('order').addEventListener('click', function () {}); 5 | 6 | { 7 | /*

I am Hero Alam 1

8 |

I am Hero Alam 2

9 | 10 | var p = document.getElementsByClassName('nav')[0]; */ 11 | } 12 | -------------------------------------------------------------------------------- /milestone-5/quiz-03.js: -------------------------------------------------------------------------------- 1 | // document.getElementById('balance').innerText = 1250; 2 | { 3 | /*

Programming Hero

*/ 4 | } 5 | 6 | const nameOfOrganization = document.getElementById('name').value; 7 | 8 | console.log(nameOfOrganization); 9 | 10 | { 11 | /* ; */ 12 | } 13 | 14 | document.getElementById('button').addEventListener('click', function () { 15 | document.body.style.background = 'red'; 16 | }); 17 | -------------------------------------------------------------------------------- /milestone-5/readme.md: -------------------------------------------------------------------------------- 1 | # **How Javascript works & DOM** 2 | 3 | 1. getElementsByTagName 4 | 2. getElementById 5 | 3. getElementsByClassName 6 | 4. querySelector (css sector) | querySelectorAll 7 | 8 | --- 9 | 10 | - event-Bubble target lowest value of the element .. (up) | always use it. 11 | `event.stropPropagation();` stop propagation `event.stopImmediatePropagation();` 12 | - Capture Phase (down) 13 | -------------------------------------------------------------------------------- /milestone-5/string-array-methods-29/case-convert.js: -------------------------------------------------------------------------------- 1 | const anthem = 'amer sonAr bangla'; 2 | const search = 'valo'; 3 | 4 | const userInput = 'blaCkPink'; 5 | const savedUserName = 'blackPink'; 6 | 7 | if (userInput.toLowerCase() == savedUserName.toLocaleLowerCase()) { 8 | console.log('user exists'); 9 | } 10 | -------------------------------------------------------------------------------- /milestone-5/string-array-methods-29/readme.md: -------------------------------------------------------------------------------- 1 | # slice() মূল অ্যারেকে চেইঞ্জ করে না । 2 | 3 | # splice(start, end) মূল অ্যারে কে চেইঞ্জ করে । 4 | 5 | # sort() দিয়ে একটা অ্যারে এর উপাদানগুলিকে সিরিয়াল অনুসারে (ক্রম অনুসারে) সাজানো হয়। 6 | -------------------------------------------------------------------------------- /milestone-6/API-json-CRUD/quiz-33.js: -------------------------------------------------------------------------------- 1 | // const stuInfo = JSON.stringify({ name: 'James', roll: 3 }); 2 | // console.log(stuInfo.name); 3 | 4 | // const premikas = { name: 'keka ferdousi', cars: { brand: 'toyota' } }; 5 | // console.log(({ band } = premikas.cars)); 6 | 7 | const info = { data: [{ language: 'Javascript', library: 'React' }] }; 8 | console.log(info.data[0].library); 9 | -------------------------------------------------------------------------------- /milestone-6/callback.js: -------------------------------------------------------------------------------- 1 | function welcomeMessage(name, greetHandler) { 2 | // console.log(greetHandler); 3 | greetHandler(name); 4 | } 5 | // const names = ['tom', 'brady']; 6 | // const myObj = {name: 'tom', age: 19}; 7 | 8 | function greetMorning(name) { 9 | console.log('Good morning', name); 10 | } 11 | welcomeMessage('Tom hanks', greetMorning); 12 | -------------------------------------------------------------------------------- /milestone-6/default-parameter.js: -------------------------------------------------------------------------------- 1 | function maxNumber(array = []) { 2 | const max = Math.max(...array); 3 | return max; 4 | } 5 | const biggest = maxNumber(); 6 | console.log(biggest); 7 | -------------------------------------------------------------------------------- /milestone-6/kanye.rest-quotes/js/kanye.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const loadQuotes = () => { 3 | fetch('https://api.kanye.rest/') 4 | .then(res => res.json()) 5 | .then(data => displayQuote(data)); 6 | }; 7 | 8 | const displayQuote = quote => { 9 | const quoteElement = document.getElementById('quote'); 10 | quoteElement.innerText = quote.quote; 11 | } -------------------------------------------------------------------------------- /milestone-6/object-concept-js/compare-object.js: -------------------------------------------------------------------------------- 1 | const first2 = { a: 1, b: 2 }; 2 | const second2 = { b: 2, a: 1 }; 3 | 4 | function compareObjects(obj1, obj2) { 5 | if (Object.keys(obj1).length !== Object.keys(obj2).length) { 6 | return false; 7 | } 8 | for (const prop in obj1) { 9 | if (obj1[prop] !== obj2[prop]) { 10 | return false; 11 | } 12 | } 13 | return true; 14 | } 15 | 16 | const isEqual = compareObjects(first2, second2); 17 | console.log(isEqual); 18 | -------------------------------------------------------------------------------- /milestone-6/object-concept-js/quiz-36.js: -------------------------------------------------------------------------------- 1 | // const nayok = { name: 'hero', age: '28', isMarried: false }; 2 | // console.log(Object.entries(nayok)); 3 | 4 | // const obj = { a: 1, b: 7, c: 3, length: 2 }; 5 | // console.log(Object.keys(obj).length); 6 | 7 | // const obj1 = { module: 35, video: 2 }; 8 | // const obj2 = { module: 35, video: 2 }; 9 | // console.log(obj1 === obj2); 10 | 11 | const getGirlFriend = (name = 'chokina') => 'name'; 12 | console.log(getGirlFriend()); 13 | -------------------------------------------------------------------------------- /milestone-6/optional-chaining.js: -------------------------------------------------------------------------------- 1 | const company = { 2 | name: 'GP', 3 | ceo: { id: 1, name: 'Ajmol', food: 'Birany' }, 4 | web: { 5 | work: 'website-development', 6 | employee: 22, 7 | framework: 'react', 8 | tech: { first: 'html', second: 'css', third: 'js' }, 9 | }, 10 | }; 11 | 12 | // console.log(company.web.tech.third); 13 | console.log(company?.web?.tech?.third); 14 | console.log(company?.backend?.tech.third); // ? - optional chaining 15 | -------------------------------------------------------------------------------- /milestone-6/quiz-31.js: -------------------------------------------------------------------------------- 1 | // function getSum(a, b = 9) { 2 | // return a + b; 3 | // } 4 | 5 | // console.log(getSum(2, 7)); 6 | 7 | // const y = x => x * x; 8 | // const z = y(5); 9 | // console.log(z); 10 | 11 | const cars = ['toyota', 'honda', 'mercedes']; 12 | const newCars = [...cars, 'ferrari']; 13 | console.log(newCars); 14 | -------------------------------------------------------------------------------- /milestone-6/random-user-api/buddy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /milestone-6/rest-country-api/countries.css: -------------------------------------------------------------------------------- 1 | #countries { 2 | display: grid; 3 | grid-template-columns: repeat(3, 1fr); 4 | } 5 | 6 | .country { 7 | border: 4px dotted goldenrod; 8 | padding: 30px; 9 | margin: 30px; 10 | border-radius: 10px; 11 | } 12 | -------------------------------------------------------------------------------- /milestone-6/scope.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-6/scope.js -------------------------------------------------------------------------------- /milestone-6/spread-operator.js: -------------------------------------------------------------------------------- 1 | const numbers = [23, 65, 99, 21, 35]; 2 | console.log(...numbers); 3 | 4 | const max = Math.max(23, 33, 343, 234, 1, 2, 33); 5 | const maxInArray = Math.max(...numbers); 6 | console.log(max, maxInArray); 7 | -------------------------------------------------------------------------------- /milestone-6/template-string.js: -------------------------------------------------------------------------------- 1 | const friends = ['abul', 'babul', 'kabul', 'sabul']; 2 | 3 | const first = 'Mamun'; 4 | const last = 'Khan'; 5 | 6 | const check = `His name is: ${first} ${last}. Have money ${ 7 | friends.length * 500 8 | }`; 9 | console.log(check); 10 | -------------------------------------------------------------------------------- /milestone-7/browser-api/alert.js: -------------------------------------------------------------------------------- 1 | const askPicnic = () => { 2 | const res = confirm('Are you going to picnic?'); 3 | console.log(res); 4 | 5 | if (res === true) { 6 | alert('true'); 7 | } else { 8 | console.log('false'); 9 | } 10 | }; 11 | 12 | const askName = () => { 13 | const name = prompt('What is your name?'); 14 | 15 | if (name) { 16 | console.log(name); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /milestone-7/browser-api/quiz-39.js: -------------------------------------------------------------------------------- 1 | // Browser Object Model (BOM) 2 | 3 | // document.getElementById('go-back').addEventListener('click', () => { 4 | // history.back(); 5 | // }); 6 | 7 | // document.cookie will return all cookies in one string 8 | 9 | // let path x = location.pathname; 10 | 11 | /* 12 | { Visit } 13 | const url = document.getElementById("anchor"); 14 | const path = url.pathname; 15 | console.log(path); 16 | */ 17 | -------------------------------------------------------------------------------- /milestone-7/browser-api/readme.md: -------------------------------------------------------------------------------- 1 | shortcut 2 | 3 | - chrome://restart 4 | -------------------------------------------------------------------------------- /milestone-7/js-you-need-to-know-for-react/fundamenntals.js: -------------------------------------------------------------------------------- 1 | const student = { 2 | name: 'Sakib Khan', 3 | age: 23, 4 | movies: ['king khan', 'Dhaker Mastan'], 5 | }; 6 | 7 | const myVariable = 'age'; 8 | 9 | console.log(student.age); // direct by property 10 | console.log(student['age']); // access via property name string 11 | console.log(student[myVariable]); // access via property name in a variable 12 | -------------------------------------------------------------------------------- /milestone-7/js-you-need-to-know-for-react/json.js: -------------------------------------------------------------------------------- 1 | const student = { 2 | name: 'Sakib Khan', 3 | age: 23, 4 | movies: ['king khan', 'Dhaker Mastan'], 5 | }; 6 | // 1. stringify 7 | const studentJSON = JSON.stringify(student); 8 | console.log(studentJSON); 9 | 10 | // 2. Parse 11 | const studentObj = JSON.parse(studentJSON); 12 | console.log(studentObj); 13 | -------------------------------------------------------------------------------- /milestone-7/js-you-need-to-know-for-react/storage.js: -------------------------------------------------------------------------------- 1 | const addToLocalStorage = () => { 2 | const idInput = document.getElementById('storage-id'); 3 | const id = idInput.value; 4 | const valueInput = document.getElementById('storage-value'); 5 | const value = valueInput.value; 6 | 7 | // 8 | if (id && value) { 9 | localStorage.setItem(id, value); 10 | } 11 | idInput.value = ''; 12 | valueInput.value = ''; 13 | }; 14 | -------------------------------------------------------------------------------- /milestone-7/quiz-38.js: -------------------------------------------------------------------------------- 1 | // setTimeout is asynchronous: 2 | // Heap is a much larger region storing everything allocated dynamically. 3 | // A stack is usually a continuous region of memory allocating local context for each executing function. 4 | setTimeout(() => console.log('I am Superman'), 1000); 5 | console.log('I am Superwoman'); 6 | -------------------------------------------------------------------------------- /milestone-7/quiz-40.js: -------------------------------------------------------------------------------- 1 | // SSL stands for Secure Sockets Layer. 2 | // XMLHttpRequest (XHR) 3 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-7/react-app-setup/my-app/public/favicon.ico -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-7/react-app-setup/my-app/public/logo192.png -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-7/react-app-setup/my-app/public/logo512.png -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-7/react-app-setup/my-app/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-7/readme.md: -------------------------------------------------------------------------------- 1 | # Milestone- 07 2 | 3 | ![2022-03-02_23-08](https://user-images.githubusercontent.com/67066348/156482050-88c66351-bef4-4417-be1e-cb688e7ef029.png) 4 | -------------------------------------------------------------------------------- /milestone-7/regExp.js: -------------------------------------------------------------------------------- 1 | // 2 characters of specific set 2 | /(?:[^`!@#$%^&*\-_=+'\/.,]*[`!@#$%^&*\-_=+'\/.,]){2}/; 3 | 4 | // regex to validate password strength 5 | 6 | /^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$/; 7 | -------------------------------------------------------------------------------- /milestone-7/setInterval.js: -------------------------------------------------------------------------------- 1 | let seconds = 0; 2 | 3 | const timeId = setInterval(() => { 4 | seconds++; 5 | console.log(seconds); 6 | if (seconds > 15) { 7 | clearInterval(timeId); 8 | } 9 | }, 3000); 10 | -------------------------------------------------------------------------------- /milestone-7/setTimeout.js: -------------------------------------------------------------------------------- 1 | setTimeout(function () { 2 | console.log('I am using VS code'); 3 | }, 5000); 4 | setTimeout(() => { 5 | console.log('Exploring MDN articles'); 6 | }, 4000); 7 | setTimeout(() => { 8 | console.log('Exploring MDN articles'); 9 | }, 5000); 10 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/core-concepts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/core-concepts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/core-concepts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .person { 6 | background-color: burlywood; 7 | padding: 20px; 8 | margin: 10px; 9 | border: 5px solid #eee7e7; 10 | border-radius: 10px; 11 | } 12 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/core-concepts/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts2/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/core-concepts2/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts2/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/core-concepts2/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/core-concepts2/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/core-concepts2/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .product { 6 | background-color: burlywood; 7 | padding: 20px; 8 | margin: 10px; 9 | border: 5px solid #eee7e7; 10 | border-radius: 10px; 11 | } 12 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/core-concepts2/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/how-react-works/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/how-react-works/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/how-react-works/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/how-react-works/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/how-react-works/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/how-react-works/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/how-react-works/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/quiz-44.js: -------------------------------------------------------------------------------- 1 | // const nayok = { 2 | // name: 'Salman Shah', 3 | // birthPlace: 'sylhet', 4 | // firstSerial: 'Pathor Somoy ', 5 | // }; 6 | 7 | // let ul = `
  • Programming
  • `; 8 | // ul += `
  • Hero
  • `; 9 | // console.log(ul); 10 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-core-concept-recap/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-core-concept-recap/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-core-concept-recap/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/react-core-concept-recap/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-storage-and-handler/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-storage-and-handler/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-storage-and-handler/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/App.js: -------------------------------------------------------------------------------- 1 | import './App.css'; 2 | import Cosmetics from './components/Cosmetics/Cosmetics'; 3 | 4 | function App() { 5 | return ( 6 |
    7 | 8 |
    9 | ); 10 | } 11 | 12 | export default App; 13 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/components/Cosmetic/Cosmetic.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-storage-and-handler/src/components/Cosmetic/Cosmetic.css -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/components/Cosmetics/Cosmetics.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/react-storage-and-handler/src/components/Cosmetics/Cosmetics.css -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/components/utilities/calculate.js: -------------------------------------------------------------------------------- 1 | const add = (first, second) => { 2 | return first + second; 3 | }; 4 | 5 | const multiply = (first, second) => { 6 | return first * second; 7 | }; 8 | export { add, multiply }; 9 | 10 | // export default add; 11 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/react-storage-and-handler/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/readme.md: -------------------------------------------------------------------------------- 1 | # Simple-React 2 | 3 | ## url_path 4 | 5 | ![urldiag](https://user-images.githubusercontent.com/67066348/158392377-28c5e622-7829-4c4b-84f5-2d22c46d6a71.PNG) 6 | 7 | ## react int 8 | 9 | ``` 10 | npx create-react-app my-app 11 | cd my-app 12 | npm start 13 | ``` 14 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/rest-countries-reactjs/public/favicon.ico -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/rest-countries-reactjs/public/logo192.png -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-8/rest-countries-reactjs/public/logo512.png -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/components/Countries/Countries.css: -------------------------------------------------------------------------------- 1 | .countries-container { 2 | display: grid; 3 | grid-template-columns: repeat(3, 1fr); 4 | grid-gap: 10px; 5 | } 6 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/components/Country/Country.css: -------------------------------------------------------------------------------- 1 | .country { 2 | margin: 20px; 3 | padding: 10px; 4 | background-color: goldenrod; 5 | } 6 | .country img { 7 | width: 150px; 8 | } 9 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-reactjs/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-8/rest-countries-recap/style.css: -------------------------------------------------------------------------------- 1 | .countries { 2 | display: grid; 3 | grid-template-columns: repeat(3, 1fr); 4 | grid-gap: 20px; 5 | } 6 | .country { 7 | border: 3px solid goldenrod; 8 | background-color: blueviolet; 9 | border-radius: 10px; 10 | padding: 10px; 11 | } 12 | .country img { 13 | width: 200px; 14 | } 15 | -------------------------------------------------------------------------------- /milestone-8/simple-react-bonus/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/react-search-meal-db/public/favicon.ico -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/react-search-meal-db/public/logo192.png -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/react-search-meal-db/public/logo512.png -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/App.js: -------------------------------------------------------------------------------- 1 | import './App.css'; 2 | import Restaurant from './components/Restaurant/Restaurant'; 3 | 4 | function App() { 5 | return ( 6 |
    7 | 8 |
    9 | ); 10 | } 11 | 12 | export default App; 13 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/components/Meal/Meal.css: -------------------------------------------------------------------------------- 1 | .meal{ 2 | border: 1px solid lightgray; 3 | padding: 10px; 4 | border-radius: 15px; 5 | } 6 | .meal img{ 7 | width: 200px; 8 | } -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/components/MealDetail/MealDetail.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/react-search-meal-db/src/components/MealDetail/MealDetail.js -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/components/Restaurant/Restaurant.css: -------------------------------------------------------------------------------- 1 | .restaurant-menu{ 2 | display: grid; 3 | grid-template-columns: 3fr 1fr; 4 | grid-column-gap: 10px; 5 | } 6 | .meals-container{ 7 | display: grid; 8 | grid-template-columns: repeat(3, 1fr); 9 | grid-gap: 20px; 10 | } -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-9/react-search-meal-db/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-9/readme.md: -------------------------------------------------------------------------------- 1 | # React-Router and States 2 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/public/favicon.ico -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/public/logo192.png -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/public/logo512.png -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/App.js: -------------------------------------------------------------------------------- 1 | import './App.css'; 2 | import Navigation from './components/Navigation/Navigation'; 3 | 4 | function App() { 5 | return ( 6 |
    7 | 8 |
    9 | ); 10 | } 11 | 12 | export default App; 13 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/components/Link/Link.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Link = (props) => { 4 | const {name, link} = props.route; 5 | return ( 6 |
  • 7 | {name} 8 |
  • 9 | ); 10 | }; 11 | 12 | export default Link; -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBlack.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBlack.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBlackItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBlackItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBold.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreBoldItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreLight.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreLightItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreMedium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreMedium.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreMediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreMediumItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreRegular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreRegular.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreRegularItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreRegularItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreSemibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreSemibold.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreSemiboldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreSemiboldItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreThin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreThin.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreThinItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/calibre/CalibreThinItalic.otf -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoBold.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoBoldItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoHeavy.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoHeavy.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoHeavyItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoHeavyItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoLight.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoLight.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoLightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoLightItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoMedium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoMedium.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoMediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoMediumItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoRegular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoRegular.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoRegularItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoRegularItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoSemibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoSemibold.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoSemiboldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/responsive-nav-tailwind/src/fonts/sf-mono/SFMonoSemiboldItalic.woff -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /milestone-9/responsive-nav-tailwind/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: ['./src/**/*.{js,jsx,ts,tsx}'], 3 | theme: { 4 | extend: {}, 5 | }, 6 | plugins: [], 7 | }; 8 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/.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 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/simple-volunteers/public/favicon.ico -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/simple-volunteers/public/logo192.png -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progmamun/programming-hero/019d5f486cd74ac933d7ccfdf6d92f15e3cb6115/milestone-9/simple-volunteers/public/logo512.png -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/components/Activity/Activity.css: -------------------------------------------------------------------------------- 1 | .activity{ 2 | border: 2px solid goldenrod; 3 | border-radius: 20px; 4 | } 5 | .activity img{ 6 | width: 200px; 7 | } -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/components/Activity/Activity.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './Activity.css'; 3 | 4 | const Activity = ({activity}) => { 5 | const {title, img} = activity; 6 | return ( 7 |
    8 | 9 |

    {title}

    10 |
    11 | ); 12 | }; 13 | 14 | export default Activity; -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/components/Header/Header.css: -------------------------------------------------------------------------------- 1 | nav a{ 2 | text-decoration: none; 3 | margin-right: 20px; 4 | } -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/components/Header/Header.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | import './Header.css'; 4 | 5 | const Header = () => { 6 | return ( 7 | 11 | ); 12 | }; 13 | 14 | export default Header; -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/components/Main/Main.css: -------------------------------------------------------------------------------- 1 | .activity-container{ 2 | display: grid; 3 | grid-template-columns: repeat(3, 1fr); 4 | grid-gap: 20px; 5 | } -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/hooks/useVolunteers.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react" 2 | 3 | const useVolunteers = () =>{ 4 | const [volunteers, setVolunteers] = useState([]); 5 | useEffect( () =>{ 6 | fetch('data.json') 7 | .then(res => res.json()) 8 | .then(data => setVolunteers(data)); 9 | }, []); 10 | return [volunteers, setVolunteers]; 11 | } 12 | export default useVolunteers; -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /milestone-9/simple-volunteers/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Complete Web Development Course With Jhankar Mahbub 2 | 3 | ## Main Course MERN Stack Development(specialized Frontend Development) 4 | 5 | 1. First ACC Node.js 6 | ![acc-node](/img/acc-node.jpg) 7 | 2. Second ACC Redux(Redux From Beginner Level To Advanced) 8 | ![acc-redux](/img/acc-redux.jpg) 9 | 10 | --- 11 | 12 | # Excellency in Professional Career 13 | 14 | 1. Advanced Github and Advanced JavaScript 15 | ![acc-advanced-js-github](/img/js-git-mir-vai.jpg) 16 | --------------------------------------------------------------------------------