├── Assignment 1 - Smart Grade ├── .eslintrc.cjs ├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── images │ │ ├── 11.png │ │ ├── 110.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 14.png │ │ ├── 15.png │ │ ├── 16.png │ │ ├── 17.png │ │ ├── 18.png │ │ ├── 19.png │ │ ├── 21.png │ │ ├── 210.png │ │ ├── 22.png │ │ ├── 23.png │ │ ├── 24.png │ │ ├── 25.png │ │ ├── 26.png │ │ ├── 27.png │ │ ├── 28.png │ │ ├── 29.png │ │ ├── 31.png │ │ ├── 310.png │ │ ├── 32.png │ │ ├── 33.png │ │ ├── 34.png │ │ ├── 35.png │ │ ├── 36.png │ │ ├── 37.png │ │ ├── 38.png │ │ ├── 39.png │ │ ├── avatar.png │ │ ├── hero-graphics.svg │ │ └── lws-logo-en.svg ├── src │ ├── App.jsx │ ├── assets │ │ └── db │ │ │ ├── class1.json │ │ │ ├── class2.json │ │ │ └── class3.json │ ├── components │ │ ├── Footer.jsx │ │ ├── Header.jsx │ │ ├── Hero.jsx │ │ └── StudentTable.jsx │ ├── index.css │ └── main.jsx ├── tailwind.config.js └── vite.config.js ├── Assignment 10 - LWS Kart ├── .env ├── .eslintrc.json ├── .gitignore ├── components.json ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.mjs ├── public │ ├── bd.png │ ├── cron.png │ ├── images │ │ ├── admin-panel-2.jpg │ │ ├── admin-panel-3.jpg │ │ ├── admin-panel.jpg │ │ ├── avatar.png │ │ ├── category │ │ │ ├── category-1.jpg │ │ │ ├── category-2.jpg │ │ │ ├── category-3.jpg │ │ │ ├── category-4.jpg │ │ │ ├── category-5.jpg │ │ │ └── category-6.jpg │ │ ├── complete.png │ │ ├── favicon │ │ │ ├── about.txt │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon.ico │ │ │ └── site.webmanifest │ │ ├── icons │ │ │ ├── bed-2.svg │ │ │ ├── bed.svg │ │ │ ├── delivery-van.svg │ │ │ ├── money-back.svg │ │ │ ├── office.svg │ │ │ ├── outdoor-cafe.svg │ │ │ ├── phone.svg │ │ │ ├── restaurant.svg │ │ │ ├── service-hours.svg │ │ │ ├── sofa.svg │ │ │ └── terrace.svg │ │ ├── logo-white.svg │ │ ├── logo.svg │ │ ├── methods.png │ │ ├── offer.jpg │ │ └── products │ │ │ ├── product1.jpg │ │ │ ├── product10.jpg │ │ │ ├── product11.jpg │ │ │ ├── product12.jpg │ │ │ ├── product2.jpg │ │ │ ├── product3.jpg │ │ │ ├── product4.jpg │ │ │ ├── product5.jpg │ │ │ ├── product6.jpg │ │ │ ├── product7.jpg │ │ │ ├── product8.jpg │ │ │ └── product9.jpg │ ├── lws-logo.png │ ├── next.svg │ ├── resend_email_demo │ │ └── email demo.png │ ├── us.png │ └── vercel.svg ├── src │ ├── app │ │ ├── [lang] │ │ │ ├── (admin) │ │ │ │ └── admin-dashboard │ │ │ │ │ ├── error.tsx │ │ │ │ │ ├── loading.tsx │ │ │ │ │ ├── not-found.tsx │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── priceChart │ │ │ │ │ └── page.tsx │ │ │ │ │ └── productList │ │ │ │ │ └── page.tsx │ │ │ ├── (user) │ │ │ │ ├── about │ │ │ │ │ └── page.tsx │ │ │ │ ├── account │ │ │ │ │ └── page.tsx │ │ │ │ ├── banned │ │ │ │ │ └── [userId] │ │ │ │ │ │ └── page.tsx │ │ │ │ ├── checkout │ │ │ │ │ └── page.tsx │ │ │ │ ├── product-details │ │ │ │ │ └── [id] │ │ │ │ │ │ └── page.tsx │ │ │ │ ├── shop │ │ │ │ │ ├── loading.tsx │ │ │ │ │ └── page.tsx │ │ │ │ └── wishlist │ │ │ │ │ ├── loading.tsx │ │ │ │ │ └── page.tsx │ │ │ ├── dictionaries.ts │ │ │ ├── dictionaries │ │ │ │ ├── bn.json │ │ │ │ └── en.json │ │ │ ├── error.tsx │ │ │ ├── forgot-password │ │ │ │ └── page.tsx │ │ │ ├── globals.css │ │ │ ├── interfaces.d.ts │ │ │ ├── layout.tsx │ │ │ ├── loading.tsx │ │ │ ├── login │ │ │ │ └── page.tsx │ │ │ ├── new-password │ │ │ │ └── page.tsx │ │ │ ├── page.tsx │ │ │ ├── register │ │ │ │ └── page.tsx │ │ │ └── sitemap.ts │ │ ├── actions │ │ │ ├── admin.actions.ts │ │ │ ├── auth.actions.ts │ │ │ ├── cart.actions.ts │ │ │ ├── email.actions.ts │ │ │ ├── order.actions.ts │ │ │ ├── profile.actions.ts │ │ │ ├── wishlist.actions.ts │ │ │ └── zodSchema.index.ts │ │ ├── api │ │ │ ├── [...nextauth] │ │ │ │ └── route.ts │ │ │ ├── cart │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── profile │ │ │ │ └── address │ │ │ │ │ └── route.ts │ │ │ ├── register │ │ │ │ └── route.ts │ │ │ ├── releaseProduct │ │ │ │ └── route.ts │ │ │ ├── reviews │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ ├── search │ │ │ │ ├── [query] │ │ │ │ │ └── route.ts │ │ │ │ └── count │ │ │ │ │ └── [query] │ │ │ │ │ └── route.ts │ │ │ ├── stock │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ ├── uploadthing │ │ │ │ ├── core.ts │ │ │ │ └── route.ts │ │ │ ├── user │ │ │ │ └── [email] │ │ │ │ │ └── route.ts │ │ │ └── wishlist │ │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ │ ├── count │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── layout.tsx │ │ ├── models │ │ │ ├── TokenModel.ts │ │ │ ├── ordersModel.ts │ │ │ ├── passwordResetTokenModel.ts │ │ │ ├── productModel.ts │ │ │ └── userModel.ts │ │ └── not-found.tsx │ ├── assets │ │ ├── banner-bg-1.jpg │ │ ├── banner-bg-2.jpg │ │ ├── banner-bg.jpg │ │ └── container-img.jpg │ ├── auth.ts │ ├── components │ │ ├── account │ │ │ ├── AccountInfo.tsx │ │ │ ├── AccountWrapper.tsx │ │ │ ├── BillingAddress.tsx │ │ │ ├── BillingForm.tsx │ │ │ ├── DownloadButton.tsx │ │ │ ├── MyOrders.tsx │ │ │ ├── OrderPagination.tsx │ │ │ ├── OrdersList.tsx │ │ │ ├── PersonalProfile.tsx │ │ │ ├── PersonalProfileEdit.tsx │ │ │ ├── ProfilePasswordTab.tsx │ │ │ ├── ReviewProduct.tsx │ │ │ ├── ShippingAddress.tsx │ │ │ ├── ShippingForm.tsx │ │ │ └── StarReview.tsx │ │ ├── admin │ │ │ ├── AddNewProduct.tsx │ │ │ ├── AddProductForm.tsx │ │ │ ├── AdminCarousel.tsx │ │ │ ├── AdminSearch.tsx │ │ │ ├── AllLoaded.tsx │ │ │ ├── LinkButtons.tsx │ │ │ ├── LoadMore.tsx │ │ │ ├── PriceChart.tsx │ │ │ ├── Product.Admin.tsx │ │ │ ├── ProductCategory.Admin.tsx │ │ │ ├── ProductDelete.tsx │ │ │ ├── ProductList.tsx │ │ │ ├── ProductName.tsx │ │ │ └── ProductStock.Admin.tsx │ │ ├── auth │ │ │ ├── ForgotPasswordForm.tsx │ │ │ ├── FormRow.tsx │ │ │ ├── LoginForm.tsx │ │ │ ├── NewPasswordForm.tsx │ │ │ ├── RegisterForm.tsx │ │ │ ├── SignIn.tsx │ │ │ └── SignOut.tsx │ │ ├── checkout │ │ │ ├── CartItem.tsx │ │ │ ├── CheckoutForm.tsx │ │ │ ├── CheckoutSummary.tsx │ │ │ ├── CheckoutWrapper.tsx │ │ │ ├── EmptyCart.tsx │ │ │ ├── FormRow.tsx │ │ │ ├── InvoicePDF.tsx │ │ │ ├── OrderCard.tsx │ │ │ ├── OrderDetailsDialog.tsx │ │ │ ├── QuantityButton.tsx │ │ │ ├── T&C.tsx │ │ │ ├── T&CBengali.tsx │ │ │ └── T&CEnglish.tsx │ │ ├── common │ │ │ ├── Breadcrumb.tsx │ │ │ ├── Copyright.tsx │ │ │ ├── Dropdown.tsx │ │ │ ├── Footer.tsx │ │ │ ├── Header.tsx │ │ │ ├── HeaderButtons.tsx │ │ │ ├── HeaderContainer.tsx │ │ │ ├── LanguageSwitcher.tsx │ │ │ ├── Navbar.tsx │ │ │ ├── ScrollProgress.tsx │ │ │ ├── ScrollToTop.tsx │ │ │ ├── Search.tsx │ │ │ ├── SearchSuggestionItem.tsx │ │ │ └── TypeAnimation.tsx │ │ ├── home │ │ │ ├── Ads.tsx │ │ │ ├── Advertising.tsx │ │ │ ├── Banner.tsx │ │ │ ├── BannerCarousel.tsx │ │ │ ├── BannerText.tsx │ │ │ ├── Categories.tsx │ │ │ ├── ContainerScrollSection.tsx │ │ │ ├── FAQ.tsx │ │ │ ├── Features.tsx │ │ │ ├── MotionButton.tsx │ │ │ ├── NewArrival.tsx │ │ │ ├── NewArrivalProducts.tsx │ │ │ ├── RandomAdvertiseText.tsx │ │ │ ├── Testimonial.tsx │ │ │ ├── TrendingProducts.tsx │ │ │ └── Trendings.tsx │ │ ├── index.ts │ │ ├── product │ │ │ ├── AddtoCartButton.tsx │ │ │ ├── Product.tsx │ │ │ ├── ProductCount.tsx │ │ │ ├── ProductDescription.tsx │ │ │ ├── ProductDetails.tsx │ │ │ ├── ProductDetailsCartButton.tsx │ │ │ ├── ProductImages.tsx │ │ │ ├── ProductLimit.tsx │ │ │ ├── ProductMagnifier.tsx │ │ │ ├── ProductShareButtons.tsx │ │ │ ├── ProductWishlistButton.tsx │ │ │ ├── Quantity.tsx │ │ │ ├── RelatedProducts.tsx │ │ │ ├── ReviewsButton.tsx │ │ │ └── WishlistButton.tsx │ │ ├── shop │ │ │ ├── AllProducts.tsx │ │ │ ├── ColorSlider.tsx │ │ │ ├── DrawerContents.tsx │ │ │ ├── DrawerTrigger.tsx │ │ │ ├── NoProductMessage.tsx │ │ │ ├── NoProducts.tsx │ │ │ ├── ProductSkeleton.tsx │ │ │ ├── ProductSorter.tsx │ │ │ ├── ProductWrapper.tsx │ │ │ ├── Products.tsx │ │ │ ├── ResetFilters.tsx │ │ │ ├── ShopPagination.tsx │ │ │ ├── ShopWrapper.tsx │ │ │ ├── Sidebar.tsx │ │ │ ├── SidebarCategories.tsx │ │ │ ├── SidebarPriceSize.tsx │ │ │ └── SidebarStockStatus.tsx │ │ ├── ui │ │ │ ├── Navlink.tsx │ │ │ ├── accordion.tsx │ │ │ ├── avatar.tsx │ │ │ ├── background-gradient.tsx │ │ │ ├── badge.tsx │ │ │ ├── bar-poll.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── bubble-text.tsx │ │ │ ├── button.tsx │ │ │ ├── card-stack.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── chip-tabs.tsx │ │ │ ├── container-scroll.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── image-hover.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── movingBorder.tsx │ │ │ ├── pagination.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── select.tsx │ │ │ ├── slider-toggle.tsx │ │ │ ├── slider.tsx │ │ │ ├── spotlight-btn.tsx │ │ │ ├── staggered-dropdown.tsx │ │ │ ├── tabs.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast-action.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ ├── tooltip.tsx │ │ │ └── use-toast.ts │ │ └── wishlist │ │ │ ├── AddToCartHoverMenu.tsx │ │ │ ├── NoWishlist.tsx │ │ │ ├── StockCount.tsx │ │ │ ├── Wishlist.tsx │ │ │ ├── WishlistItem.tsx │ │ │ └── WishlistWrapper.tsx │ ├── context │ │ └── index.ts │ ├── db │ │ ├── connectMongo.ts │ │ └── queries │ │ │ ├── product.queries.ts │ │ │ ├── token.queries.ts │ │ │ └── user.queries.ts │ ├── hooks │ │ ├── admin-hooks │ │ │ ├── useAdminProductCategory.ts │ │ │ ├── useAdminProductDelete.ts │ │ │ ├── useAdminProductForm.ts │ │ │ └── useAdminProductStock.ts │ │ ├── auth-hooks │ │ │ ├── useLogin.ts │ │ │ └── useRegister.ts │ │ ├── cart-hooks │ │ │ ├── useAddToCart.tsx │ │ │ ├── useAddToCartHoverMenu.ts │ │ │ ├── useCheckoutQuantityButton.ts │ │ │ └── useCheckoutSummary.tsx │ │ ├── context-hooks │ │ │ ├── useCartContext.ts │ │ │ ├── useFilterContext.ts │ │ │ └── useWishlistContext.ts │ │ ├── misc-hooks │ │ │ ├── useDebounce.ts │ │ │ ├── useMenuAnimation.ts │ │ │ └── useStickyHeader.ts │ │ ├── product-hooks │ │ │ ├── useGetProducts.ts │ │ │ ├── useGetSingleProduct.ts │ │ │ ├── useMoveOfflineProductsToDB.ts │ │ │ ├── usePagination.ts │ │ │ ├── useQuantity.ts │ │ │ ├── useReviewProduct.ts │ │ │ ├── useSearch.ts │ │ │ ├── useSearchSuggestion.ts │ │ │ ├── useSidebarFilter.ts │ │ │ ├── useStock.ts │ │ │ └── useUseEffectMadness.ts │ │ ├── profile-hooks │ │ │ ├── useBillingForm.ts │ │ │ ├── useForgotPassword.ts │ │ │ ├── usePersonalProfileEdit.ts │ │ │ ├── useShippingForm.ts │ │ │ └── useUpdateProfileAddress.ts │ │ └── wishlist-hooks │ │ │ ├── useAddToWishlist.tsx │ │ │ ├── useGetUserWishlist.ts │ │ │ └── useWishlist.ts │ ├── lib │ │ └── utils.ts │ ├── middleware.ts │ ├── providers │ │ ├── CartProvider.tsx │ │ ├── CheckoutProvider.tsx │ │ ├── FilterProvider.tsx │ │ ├── QueryProvider.tsx │ │ ├── ThemeProvider.tsx │ │ ├── ToastProvider.tsx │ │ └── WishlistProvider.tsx │ └── utils │ │ ├── barPollUtil.ts │ │ ├── checkIfUserExists.ts │ │ ├── constants.ts │ │ ├── constructFilterPipeline.ts │ │ ├── convertNumsToBengali.ts │ │ ├── createImgBlur.ts │ │ ├── createSearchParamsObjectForProducts.ts │ │ ├── generateAuthToken.ts │ │ ├── generatePasswordResetToken.ts │ │ ├── getAvgReviewStars.tsx │ │ ├── getCategoryIcons.tsx │ │ ├── getFocusedFieldIcons.tsx │ │ ├── getInitialReviewTab.ts │ │ ├── getProductDiscountPercentage.ts │ │ ├── getRandomNumber.ts │ │ ├── getReviewStars.tsx │ │ ├── getRndInt.ts │ │ ├── getSuspenseKey.ts │ │ ├── getUniqueCategories.ts │ │ ├── headerFetchUtil.ts │ │ ├── makeHTMLEmail.ts │ │ ├── mongoClientPromise.ts │ │ ├── redirectIfNotLoggedIn.ts │ │ ├── revokeAdminIsUsersPages.ts │ │ ├── revokeUserInAdminPanel.ts │ │ ├── splitString.ts │ │ ├── uploadthing.ts │ │ ├── validateBDPhoneNumber.ts │ │ └── validateEmail.ts ├── tailwind.config.ts └── tsconfig.json ├── Assignment 2 - Book Finder ├── .eslintrc.cjs ├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ ├── booksImages │ │ │ ├── cracking_the_coding_interview.jpg │ │ │ ├── eloquent_js.jpg │ │ │ ├── hands_on_r_programming.jpg │ │ │ ├── html_n_css.jpg │ │ │ ├── js_jquery.png │ │ │ ├── js_the_good_parts.jpg │ │ │ ├── learn_js_quicky.jpg │ │ │ ├── learning_js_design_patterns.jpg │ │ │ ├── nodejs_design_pattern.jpg │ │ │ ├── python_crash_course.jpg │ │ │ ├── react_key_concept.jpg │ │ │ ├── the_js_definitive_guide.jpg │ │ │ ├── the_road_to_react.jpg │ │ │ └── think_like_a_programmer.jpg │ │ ├── logo.png │ │ ├── lws-logo-en.svg │ │ └── star.svg │ ├── components │ │ ├── Books │ │ │ ├── BookGrid.jsx │ │ │ └── BookGridItems.jsx │ │ ├── Footer.jsx │ │ ├── Header │ │ │ ├── Header.jsx │ │ │ ├── SearchBook.jsx │ │ │ └── SortBy.jsx │ │ ├── Layout.jsx │ │ └── Navbar.jsx │ ├── db │ │ └── booksData.js │ ├── index.css │ └── main.jsx ├── tailwind.config.js └── vite.config.js ├── Assignment 3 - Improve Tasker ├── .eslintrc.cjs ├── .gitignore ├── index.html ├── package.json ├── postcss.config.js ├── src │ ├── App.jsx │ ├── assets │ │ ├── empty.svg │ │ ├── frame.png │ │ └── lws-logo-en.svg │ ├── components │ │ ├── Footer.jsx │ │ ├── Header.jsx │ │ ├── Hero.jsx │ │ └── Tasks │ │ │ ├── ActionModal.jsx │ │ │ ├── Task.jsx │ │ │ ├── TaskAction.jsx │ │ │ ├── TaskContainer.jsx │ │ │ ├── TaskHeader.jsx │ │ │ ├── TaskSearch.jsx │ │ │ └── Tasks.jsx │ ├── contexts │ │ └── TaskProvider.jsx │ ├── database │ │ └── data.js │ ├── index.css │ ├── main.jsx │ ├── reducer │ │ ├── actions.js │ │ └── taskReducer.js │ ├── ui │ │ ├── Button.jsx │ │ ├── DeleteModal.jsx │ │ ├── NotFound.jsx │ │ └── Tag.jsx │ └── utils │ │ ├── generateColor.js │ │ └── generateId.js ├── tailwind.config.js ├── template │ ├── add-task.html │ ├── assets │ │ ├── frame.png │ │ └── lws-logo-en.svg │ ├── index.html │ └── styles │ │ └── output.css ├── vite.config.js └── yarn.lock ├── Assignment 4 - News Feeder ├── .env ├── .eslintrc.cjs ├── .gitignore ├── api │ ├── README.md │ ├── controller │ │ └── news.controller.js │ ├── data │ │ └── news.json │ ├── main.js │ ├── package-lock.json │ └── package.json ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── vite.svg ├── src │ ├── App.jsx │ ├── Page.jsx │ ├── assets │ │ ├── fonts │ │ │ ├── publico-headline-web │ │ │ │ └── Publico-Headline-Web-Bold.ttf │ │ │ └── tt-commons │ │ │ │ ├── TTCommonsRegular.otf │ │ │ │ └── TTCommonsSemiBold.otf │ │ ├── icons │ │ │ └── search.svg │ │ ├── logo.png │ │ ├── logo_light.png │ │ ├── thumb.png │ │ └── thumb_lg.png │ ├── components │ │ ├── Footer.jsx │ │ ├── FooterBottom.jsx │ │ ├── Navbar │ │ │ ├── Categories.jsx │ │ │ ├── NavDate.jsx │ │ │ ├── Navbar.jsx │ │ │ ├── SVG.jsx │ │ │ └── Search.jsx │ │ ├── News │ │ │ ├── EmptyResponse.jsx │ │ │ ├── Error.jsx │ │ │ ├── Info.jsx │ │ │ ├── LeftNews.jsx │ │ │ ├── Loader.jsx │ │ │ ├── NewsContainer.jsx │ │ │ ├── NewsItem.jsx │ │ │ ├── RightNews.jsx │ │ │ └── Thumbnail.jsx │ │ ├── NewsLetter.jsx │ │ └── SocialIcons.jsx │ ├── constants │ │ └── constant.js │ ├── context │ │ └── index.js │ ├── hooks │ │ ├── useDebounce.js │ │ ├── useNewsQuery.js │ │ └── useSearch.js │ ├── index.css │ ├── main.jsx │ ├── provider │ │ ├── NewsProvider.jsx │ │ ├── SearchProvider.jsx │ │ ├── ThemeProvider.jsx │ │ └── index.js │ └── utils │ │ ├── formatDate.js │ │ └── getCurrentDate.js ├── tailwind.config.js └── vite.config.js ├── Assignment 5 - React Blogify ├── .env ├── .eslintrc.cjs ├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── vite.svg ├── src │ ├── App.jsx │ ├── assets │ │ ├── avatar.png │ │ ├── blogs │ │ │ ├── React-Roadmap.jpg │ │ │ ├── Underrated Video.jpg │ │ │ └── taiulwind-cn-thumb.jpg │ │ ├── fonts │ │ │ ├── Europa-Bold.woff │ │ │ ├── Europa-Bold.woff2 │ │ │ ├── Europa-Regular.woff │ │ │ └── Europa-Regular.woff2 │ │ ├── icons │ │ │ ├── 3dots.svg │ │ │ ├── close.svg │ │ │ ├── comment.svg │ │ │ ├── delete.svg │ │ │ ├── edit.svg │ │ │ ├── heart-filled.svg │ │ │ ├── heart.svg │ │ │ ├── like.svg │ │ │ └── search.svg │ │ ├── image.avif │ │ ├── logo.svg │ │ ├── picture.svg │ │ ├── play.svg │ │ └── share.svg │ ├── components │ │ ├── Profile │ │ │ ├── ActionButton.jsx │ │ │ ├── ProfileInfo.jsx │ │ │ └── ProfileSkeleton.jsx │ │ ├── Search │ │ │ └── Search.jsx │ │ ├── SingleBlog │ │ │ ├── Comment.jsx │ │ │ ├── CommentSection.jsx │ │ │ ├── DeleteModal.jsx │ │ │ ├── FloatingMenu.jsx │ │ │ └── TopDetails.jsx │ │ ├── auth │ │ │ └── FormRow.jsx │ │ ├── common │ │ │ ├── Avatar.jsx │ │ │ ├── EmptyResponse.jsx │ │ │ ├── Error.jsx │ │ │ ├── Footer.jsx │ │ │ ├── Header.jsx │ │ │ ├── ScrollToTopOnRouteChange.jsx │ │ │ └── Tooltip.jsx │ │ ├── homepage │ │ │ ├── BlogCard.jsx │ │ │ ├── BlogContainer.jsx │ │ │ ├── BlogContent.jsx │ │ │ ├── BlogSidebar.jsx │ │ │ ├── BlogSkeleton.jsx │ │ │ ├── FavoriteBlogs.jsx │ │ │ ├── PopularBlogs.jsx │ │ │ └── PopularSkeleton.jsx │ │ └── misc │ │ │ ├── LikeSVG.jsx │ │ │ ├── Loader.jsx │ │ │ ├── ScrollProgress.jsx │ │ │ └── ScrollToTop.jsx │ ├── constants.js │ ├── context │ │ └── index.js │ ├── hooks │ │ ├── api │ │ │ ├── useAxios.js │ │ │ ├── useClearAllFav.js │ │ │ ├── useComment.js │ │ │ ├── useCreateBlog.js │ │ │ ├── useDeleteBlog.js │ │ │ ├── useEditBlog.js │ │ │ ├── useFavorite.js │ │ │ ├── useGetLikedUsers.js │ │ │ ├── useGetPopular.js │ │ │ ├── useGetSingleBlog.js │ │ │ ├── useGetUser.js │ │ │ ├── useLikeBlog.js │ │ │ ├── useLoginUser.js │ │ │ ├── useRefreshToken.js │ │ │ ├── useRegisterUser.js │ │ │ ├── useReorderBlog.js │ │ │ ├── useSearch.js │ │ │ └── useUpdateProfile.js │ │ ├── useAuth.js │ │ ├── useDebounce.js │ │ └── usePortal.js │ ├── index.css │ ├── main.jsx │ ├── pages │ │ ├── Blog.jsx │ │ ├── EditBlog.jsx │ │ ├── Error.jsx │ │ ├── PrivateRoute.jsx │ │ ├── Profile.jsx │ │ ├── SingleBlog.jsx │ │ ├── WriteBlog.jsx │ │ └── auth │ │ │ ├── AlreadyLoggedIn.jsx │ │ │ ├── Login.jsx │ │ │ └── Register.jsx │ ├── providers │ │ ├── AuthProvider.jsx │ │ ├── FavoriteProvider.jsx │ │ └── SearchProvider.jsx │ ├── reducer │ │ └── blogReducer.js │ └── utils │ │ ├── customFetch.js │ │ ├── formatDate.js │ │ ├── generateFullName.js │ │ ├── getBlogs.js │ │ ├── getLikeCountString.js │ │ ├── handleOutsideClick.js │ │ └── uploadImage.js ├── tailwind.config.js ├── todo.md ├── vercel.json └── vite.config.js ├── Assignment 6 - Shop Center ├── .eslintrc.json ├── .gitignore ├── Data │ ├── database.js │ └── index.js ├── app │ ├── (withFooter) │ │ ├── categories │ │ │ ├── [category] │ │ │ │ └── page.js │ │ │ ├── layout.js │ │ │ └── page.js │ │ ├── layout.js │ │ └── page.js │ ├── favicon.ico │ ├── globals.css │ ├── layout.js │ └── products │ │ └── [id] │ │ └── page.jsx ├── assets │ ├── header.webp │ ├── lws-logo-black.svg │ ├── product-1.webp │ ├── product-1s.webp │ ├── product-2.webp │ ├── product-3-hover.webp │ ├── product-3.webp │ ├── product-4.webp │ ├── product-5-front.webp │ ├── product-5.webp │ ├── products │ │ ├── iphone-2.jpg │ │ ├── iphone-3.jpg │ │ ├── iphone-4.jpg │ │ ├── iphone.jpg │ │ ├── macbook-pro.png │ │ ├── perfume.jpg │ │ └── samsung-galaxy-book.jpg │ └── svg │ │ ├── avatar.svg │ │ ├── menu.svg │ │ ├── plus.svg │ │ ├── search.svg │ │ ├── shopping-Cart.svg │ │ ├── star.svg │ │ └── tick.svg ├── components │ ├── Home │ │ └── Hero.jsx │ ├── NavLink.jsx │ ├── Navbar.jsx │ ├── Product │ │ └── ProductImages.jsx │ ├── ProductComp.jsx │ └── ProductList.jsx ├── jsconfig.json ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ ├── next.svg │ └── vercel.svg ├── tailwind.config.js └── utils │ └── minusPercentage.js ├── Assignment 7 - Movie DB ├── .eslintrc.json ├── .gitignore ├── app │ ├── [lang] │ │ ├── @home │ │ │ ├── default.jsx │ │ │ └── page.jsx │ │ ├── @movie │ │ │ ├── (.)movies │ │ │ │ └── [movieId] │ │ │ │ │ └── page.jsx │ │ │ └── default.jsx │ │ ├── _dictionaries │ │ │ ├── bn.json │ │ │ ├── dictionaries.js │ │ │ └── en.json │ │ ├── layout.jsx │ │ ├── movies │ │ │ └── [movieId] │ │ │ │ ├── not-found.jsx │ │ │ │ └── page.jsx │ │ └── page.jsx │ ├── _components │ │ ├── Footer.jsx │ │ ├── Header.jsx │ │ ├── LanguageSwitcher.jsx │ │ ├── Modal.jsx │ │ ├── Sidebar.jsx │ │ ├── ThemeSwitcher.jsx │ │ └── home │ │ │ └── MovieCard.jsx │ ├── api │ │ ├── movie │ │ │ └── [id] │ │ │ │ └── route.js │ │ └── movies │ │ │ └── route.js │ ├── favicon.ico │ ├── globals.css │ ├── layout.jsx │ └── not-found.jsx ├── data │ ├── data.json │ └── genres.json ├── jsconfig.json ├── middleware.js ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ ├── assets │ │ ├── bd.png │ │ ├── cart-item.png │ │ ├── delete.svg │ │ ├── gear.svg │ │ ├── icons │ │ │ ├── checkout.svg │ │ │ ├── commingSoon.svg │ │ │ ├── favourite.svg │ │ │ ├── moon.svg │ │ │ ├── newRelease.svg │ │ │ ├── sun.svg │ │ │ ├── trending.svg │ │ │ ├── watchLater.svg │ │ │ └── xmark.svg │ │ ├── logo.svg │ │ ├── movie-1.png │ │ ├── ring.svg │ │ ├── shopping-cart.svg │ │ ├── star.svg │ │ ├── tag.svg │ │ └── usa.png │ ├── next.svg │ └── vercel.svg ├── tailwind.config.js └── utils │ └── changeTheme.js ├── Assignment 8 - Khana Khazana ├── .env ├── .eslintrc.json ├── .gitignore ├── jsconfig.json ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.mjs ├── public │ ├── assets │ │ └── images │ │ │ ├── cover.png │ │ │ └── logo.png │ ├── next.svg │ └── vercel.svg ├── src │ ├── actions.js │ ├── app │ │ ├── error.jsx │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.js │ │ ├── loading.jsx │ │ ├── login │ │ │ └── page.jsx │ │ ├── not-found.jsx │ │ ├── page.js │ │ ├── recipe-details │ │ │ ├── [id] │ │ │ │ └── page.jsx │ │ │ └── error.jsx │ │ ├── recipe │ │ │ ├── [category] │ │ │ │ └── page.jsx │ │ │ └── error.jsx │ │ ├── register │ │ │ └── page.jsx │ │ └── sitemap.js │ ├── components │ │ ├── Auth │ │ │ ├── LoginForm.jsx │ │ │ ├── RegisterForm.jsx │ │ │ └── Submit.jsx │ │ ├── Common │ │ │ ├── LoggedIn.jsx │ │ │ ├── ModifiableInput.jsx │ │ │ ├── RecipeCard.jsx │ │ │ └── RecipeCardGrid.jsx │ │ ├── Details │ │ │ ├── Food.jsx │ │ │ ├── FoodButtons.jsx │ │ │ └── RecipeSteps.jsx │ │ ├── Home │ │ │ ├── Hero.jsx │ │ │ ├── Navbar.jsx │ │ │ ├── RecipeContainer.jsx │ │ │ └── RecipesList.jsx │ │ ├── Icons │ │ │ ├── CookTime.jsx │ │ │ ├── Favourite.jsx │ │ │ ├── Prep.jsx │ │ │ ├── Servings.jsx │ │ │ └── Share.jsx │ │ └── Misc │ │ │ └── Tooltip.jsx │ ├── context │ │ └── index.js │ ├── db │ │ ├── conectMongo.js │ │ └── queries.js │ ├── hooks │ │ ├── useAuth.js │ │ ├── useFavorite.js │ │ ├── useFoodButtons.js │ │ ├── useInputTypeConverter.js │ │ └── useMenuAnimation.js │ ├── middleware.js │ ├── models │ │ ├── Recipe.js │ │ └── User.js │ ├── provider │ │ ├── AuthProvider.jsx │ │ └── FavoriteProvider.jsx │ └── util │ │ ├── checkValidMongooseId.js │ │ ├── constants.js │ │ ├── getRandomInteger.js │ │ ├── getUniqueCategories.js │ │ └── validateInput.js ├── tailwind.config.js └── todo.md └── README.md /Assignment 1 - Smart Grade/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:react/recommended', 7 | 'plugin:react/jsx-runtime', 8 | 'plugin:react-hooks/recommended', 9 | ], 10 | ignorePatterns: ['dist', '.eslintrc.cjs'], 11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 12 | settings: { react: { version: '18.2' } }, 13 | plugins: ['react-refresh'], 14 | rules: { 15 | 'react-refresh/only-export-components': [ 16 | 'warn', 17 | { allowConstantExport: true }, 18 | ], 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SmartGrade Showcase | Learn with Sumit 8 | 9 | 10 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/11.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/110.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/12.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/13.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/14.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/15.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/16.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/17.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/18.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/19.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/21.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/210.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/22.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/23.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/24.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/25.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/26.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/27.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/28.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/29.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/31.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/310.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/32.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/33.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/34.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/35.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/36.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/37.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/38.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/39.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/public/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Learn-with-Sumit/rnext-batch-1-solutions/fd02951ebf5d9907774d254a717f4d144d64c6cd/Assignment 1 - Smart Grade/public/images/avatar.png -------------------------------------------------------------------------------- /Assignment 1 - Smart Grade/src/App.jsx: -------------------------------------------------------------------------------- 1 | import Footer from "./components/Footer"; 2 | import Header from "./components/Header"; 3 | import Hero from "./components/Hero"; 4 | import StudentTable from "./components/StudentTable"; 5 | 6 | export default function App() { 7 | return ( 8 | <> 9 | 10 |
11 | 12 | 13 |