├── .eslintrc.json ├── .gitignore ├── README.md ├── app ├── (front) │ ├── cart │ │ ├── CartDetails.tsx │ │ └── page.tsx │ ├── layout.tsx │ ├── loading.tsx │ ├── order-history │ │ ├── MyOrders.tsx │ │ └── page.tsx │ ├── order │ │ └── [id] │ │ │ ├── OrderDetails.tsx │ │ │ └── page.tsx │ ├── page.tsx │ ├── payment │ │ ├── Form.tsx │ │ └── page.tsx │ ├── place-order │ │ ├── Form.tsx │ │ └── page.tsx │ ├── product │ │ └── [slug] │ │ │ └── page.tsx │ ├── profile │ │ ├── Form.tsx │ │ └── page.tsx │ ├── register │ │ ├── Form.tsx │ │ └── page.tsx │ ├── search │ │ └── page.tsx │ ├── shipping │ │ ├── Form.tsx │ │ └── page.tsx │ └── signin │ │ ├── Form.tsx │ │ └── page.tsx ├── admin │ ├── dashboard │ │ ├── Dashboard.tsx │ │ └── page.tsx │ ├── orders │ │ ├── Orders.tsx │ │ └── page.tsx │ ├── products │ │ ├── Products.tsx │ │ ├── [id] │ │ │ ├── Form.tsx │ │ │ └── page.tsx │ │ └── page.tsx │ └── users │ │ ├── Users.tsx │ │ ├── [id] │ │ ├── Form.tsx │ │ └── page.tsx │ │ └── page.tsx ├── api │ ├── admin │ │ ├── orders │ │ │ ├── [id] │ │ │ │ └── deliver │ │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── products │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── summary │ │ │ └── route.ts │ │ └── users │ │ │ ├── [id] │ │ │ └── route.ts │ │ │ └── route.ts │ ├── auth │ │ ├── [...nextauth] │ │ │ └── route.ts │ │ ├── profile │ │ │ └── route.ts │ │ └── register │ │ │ └── route.ts │ ├── cloudinary-sign │ │ └── route.ts │ ├── orders │ │ ├── [id] │ │ │ ├── capture-paypal-order │ │ │ │ └── route.ts │ │ │ ├── create-paypal-order │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── mine │ │ │ └── route.ts │ │ └── route.ts │ └── products │ │ ├── categories │ │ └── route.ts │ │ └── seed │ │ └── route.ts ├── favicon.ico ├── globals.css ├── layout.tsx └── not-found.tsx ├── components.json ├── components ├── ClientProvider.tsx ├── DrawerButton.tsx ├── Providers.tsx ├── Sidebar.tsx ├── Wrapper.tsx ├── admin │ └── AdminLayout.tsx ├── carousel │ └── carousel.tsx ├── categories │ ├── Categories.tsx │ └── Overlay.tsx ├── checkout │ └── CheckoutSteps.tsx ├── footer │ └── Footer.tsx ├── header │ ├── Header.tsx │ ├── Menu.tsx │ └── SearchBox.tsx ├── icons │ └── Icons.tsx ├── products │ ├── AddToCart.tsx │ ├── ProductItem.tsx │ ├── ProductItems.tsx │ └── Rating.tsx ├── readMore │ ├── ReadMore.tsx │ └── Text.tsx ├── slider │ ├── CardSlider.tsx │ └── Slider.tsx └── ui │ ├── button.tsx │ └── carousel.tsx ├── lib ├── auth.ts ├── data.ts ├── dbConnect.ts ├── hooks │ ├── useCartStore.ts │ └── useLayout.ts ├── models │ ├── OrderModel.ts │ ├── ProductModel.ts │ └── UserModel.ts ├── paypal.ts ├── services │ └── productService.ts └── utils.ts ├── middleware.ts ├── next.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.js ├── prettier.config.js ├── public ├── Logo.svg ├── images │ ├── banner │ │ ├── banner1.webp │ │ └── banner2.webp │ └── categories │ │ ├── Handbags.webp │ │ ├── Pants.webp │ │ └── Shirts.webp ├── next.svg ├── readme │ ├── Fashion-Corner-Fullstack-Next-js-Store-dark.webp │ └── Fashion-Corner-Fullstack-Next-js-Store.webp └── vercel.svg ├── tailwind.config.ts ├── tsconfig.json └── types └── next-auth.d.ts /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals", 3 | "plugins": ["import"], 4 | "rules": { 5 | "import/order": [ 6 | "error", 7 | { 8 | "newlines-between": "always", 9 | "groups": ["builtin", "external", "internal", ["parent", "sibling", "index"]], 10 | "alphabetize": { 11 | "order": "asc", 12 | "caseInsensitive": true 13 | } 14 | } 15 | ] 16 | } 17 | } -------------------------------------------------------------------------------- /.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 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | .env 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | next-env.d.ts 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FashionCorner - Next.js 14 Fullstack Ecommerce App 2 | 3 | Features: 4 | 5 | - Tailwind design + DaisyUI, Shadcn/ui 6 | - Typescript 7 | - MongoDB integration 8 | - Cloudinary integration 9 | - NProgress integration 10 | - React Hook Form 11 | - Admin dashboard 12 | - SEO Friendly Application - (SSR) 13 | - Plaiceholder blurred images 14 | - PayPay integration (Stripe will be added soon) 15 | - Server Side Pagination 16 | 17 | ## [Visit project url](https://fashion-corner.vercel.app/) 18 | 19 |
20 |
21 |
24 |
25 |
Cart is empty :(
27 | 28 | Go shopping 29 | 30 |Item | 38 |Quantity | 39 |Price | 40 |
---|---|---|
46 |
50 | |
59 |
60 |
61 |
68 | {item.qty}
69 |
76 |
77 | |
78 | $ {item.price} | 79 |
ID | 24 |DATE | 25 |TOTAL | 26 |PAID | 27 |DELIVERED | 28 |ACTION | 29 |
---|---|---|---|---|---|
{order._id.substring(20, 24)} | 35 |36 | {order.createdAt.substring(0, 10)} 37 | | 38 |${order.totalPrice} | 39 |40 | {order.isPaid && order.paidAt 41 | ? `${order.paidAt.substring(0, 10)}` 42 | : 'not paid'} 43 | | 44 |45 | {order.isDelivered && order.deliveredAt 46 | ? `${order.deliveredAt.substring(0, 10)}` 47 | : 'not delivered'} 48 | | 49 |50 | 51 | Details 52 | 53 | | 54 |
{shippingAddress.fullName}
90 |91 | {shippingAddress.address}, {shippingAddress.city},{' '} 92 | {shippingAddress.postalCode}, {shippingAddress.country}{' '} 93 |
94 | {isDelivered ? ( 95 |{paymentMethod}
106 | {isPaid ? ( 107 |Item | 121 |Quantity | 122 |Price | 123 |
---|---|---|
129 |
133 | |
144 | {item.qty} | 145 |${item.price} | 146 |
32 | Simply Unique/
Simply Better.
33 |
{shippingAddress.fullName}
84 |85 | {shippingAddress.address}, {shippingAddress.city},{' '} 86 | {shippingAddress.postalCode}, {shippingAddress.country}{' '} 87 |
88 |{paymentMethod}
100 |Item | 115 |Quantity | 116 |Price | 117 |
---|---|---|
123 |
127 | |
138 | 139 | {item.qty} 140 | | 141 |${item.price} | 142 |
Description: {product.description}
76 |ID | 22 |USER | 23 |DATE | 24 |TOTAL | 25 |PAID | 26 |DELIVERED | 27 |ACTION | 28 |
---|---|---|---|---|---|---|
..{order._id.substring(20, 24)} | 34 |{order.user?.name || 'Deleted user'} | 35 |{order.createdAt.substring(0, 10)} | 36 |${order.totalPrice} | 37 |38 | {order.isPaid && order.paidAt 39 | ? `${order.paidAt.substring(0, 10)}` 40 | : 'not paid'} 41 | | 42 |43 | {order.isDelivered && order.deliveredAt 44 | ? `${order.deliveredAt.substring(0, 10)}` 45 | : 'not delivered'} 46 | | 47 |48 | 49 | Details 50 | 51 | | 52 |
id | 77 |name | 78 |price | 79 |category | 80 |count in stock | 81 |rating | 82 |actions | 83 |
---|---|---|---|---|---|---|
{formatId(product._id!)} | 89 |{product.name} | 90 |${product.price} | 91 |{product.category} | 92 |{product.countInStock} | 93 |{product.rating} | 94 |95 | 100 | Edit 101 | 102 | 103 | 110 | | 111 |
id | 45 |name | 46 |admin | 48 |actions | 49 ||
---|---|---|---|---|
{formatId(user._id)} | 55 |{user.name} | 56 |{user.email} | 57 |{user.isAdmin ? 'YES' : 'NO'} | 58 | 59 |60 | 65 | Edit 66 | 67 | 68 | 75 | | 76 |
Admin permission required
19 |10 | Free Shipping 11 |
12 |Order above $200
13 |19 | Money-back 20 |
21 |30 days guarantee0
22 |28 | Secure Payments 29 |
30 |Secured by Stripe
31 |37 | 24/7 Support 38 |
39 |Phone and Email support
40 |{product.brand}
42 |13 | At Fashion Corner, we believe that style is a way to say who you are 14 | without having to speak. Explore our vast selection of apparel, 15 | including trendy hoodies, elegant shirts, casual t-shirts, and much 16 | more, all crafted to enhance your wardrobe with style and 17 | sophistication. Whether you're updating your everyday look or 18 | shopping for a special occasion, our extensive collection ensures that 19 | every style preference and fashion need is catered to. 20 |
21 |22 | Our commitment to quality and staying in tune with the latest trends 23 | ensures that every piece in our collection not only offers comfort but 24 | also a high-fashion aesthetic. From the perfect fit of our tailored 25 | shirts to the soft embrace of our casual tees, each item is meticulously 26 | designed with the finest materials to offer you the best in fashion and 27 | comfort. Our user-friendly online store makes shopping effortless, 28 | delivering your favorite styles right to your doorstep with just a few 29 | clicks. 30 |
31 |32 | Dive into our diverse clothing lines to find your unique style. Whether 33 | it’s the casual comfort of our well-crafted denim jeans, the classic 34 | charm of our sweater collection, or the bold statement pieces from our 35 | limited edition designer collaborations, Fashion Corner has it all. Each 36 | product is showcased with detailed descriptions and high-quality images 37 | to give you a close-up view of the fabric, fit, and colors available. 38 |
39 |40 | Stay ahead of fashion trends with our new arrivals that are constantly 41 | updated to keep your style fresh and exciting. Sign up for our 42 | newsletter to receive timely updates on the latest collections, seasonal 43 | sales, and exclusive discounts tailored just for you. At Fashion Corner, 44 | fashion meets convenience with a touch of elegance, providing you with 45 | an unrivaled online shopping experience. 46 |
47 |51 | At Fashion Corner, sustainability meets style. Our dedication to 52 | sustainable fashion sets us apart, making every purchase a testament to 53 | your commitment to environmental responsibility. Our eco-friendly 54 | materials and ethical production processes aim to minimize environmental 55 | impact while providing you with high-quality, durable clothing that you 56 | can feel good about. 57 |
58 |59 | We also take pride in offering exceptional customer service. Our 60 | friendly and knowledgeable customer support team is always eager to 61 | assist you with any questions, ensuring a seamless shopping experience 62 | from start to finish. With our hassle-free returns and exchanges policy, 63 | shopping at Fashion Corner is completely worry-free. 64 |
65 |66 | Moreover, our loyalty program rewards you for every purchase, turning 67 | every dollar spent into points that can be redeemed for discounts on 68 | future orders. Join our community of fashion enthusiasts and get 69 | exclusive access to VIP events and sneak peeks at upcoming products. 70 |
71 |72 | Immerse yourself in the world of Fashion Corner today. Discover our 73 | curated selections, where each piece tells a story of quality 74 | craftsmanship and style excellence. Refresh your wardrobe with key 75 | pieces that you will love and cherish, and experience the perfect blend 76 | of style, quality, and sustainability. Shop at Fashion Corner now to see 77 | what fashion wonders await you. 78 |
79 |83 | Unearth a treasure trove of unique fashion pieces that you won't 84 | find anywhere else. Our exclusive collections are designed with the 85 | fashion-forward individual in mind, featuring limited edition apparel 86 | that makes a bold statement. From runway-inspired designs to avant-garde 87 | accessories, each item is a masterpiece that embodies creativity and 88 | distinction. 89 |
90 |91 | Our focus on exclusive offerings ensures that our customers enjoy a 92 | distinct shopping experience that elevates their style to new heights. 93 | By continually partnering with innovative designers and brands, we bring 94 | fresh, dynamic collections that are at the forefront of fashion trends. 95 | Explore these unique styles and add a touch of uniqueness to your 96 | wardrobe that truly sets you apart from the crowd. 97 |
98 |99 | Join the Fashion Corner family today and tap into the world of exclusive 100 | fashion. Let us be your guide to discovering new styles that inspire and 101 | empower you to express your individuality. Whether you're looking 102 | for something bold and expressive or subtle and sophisticated, find it 103 | at Fashion Corner. 104 |
105 |