├── app ├── api │ ├── auth │ │ ├── [...nextauth] │ │ │ └── route.ts │ │ ├── register │ │ │ └── route.ts │ │ └── profile │ │ │ └── route.ts │ ├── products │ │ ├── categories │ │ │ └── route.ts │ │ └── seed │ │ │ └── route.ts │ ├── admin │ │ ├── users │ │ │ ├── route.ts │ │ │ └── [id] │ │ │ │ └── route.ts │ │ ├── orders │ │ │ ├── route.ts │ │ │ └── [id] │ │ │ │ └── deliver │ │ │ │ └── route.ts │ │ ├── products │ │ │ ├── route.ts │ │ │ └── [id] │ │ │ │ └── route.ts │ │ └── summary │ │ │ └── route.ts │ ├── orders │ │ ├── mine │ │ │ └── route.ts │ │ ├── [id] │ │ │ ├── route.ts │ │ │ ├── create-paypal-order │ │ │ │ └── route.ts │ │ │ └── capture-paypal-order │ │ │ │ └── route.ts │ │ └── route.ts │ └── cloudinary-sign │ │ └── route.ts ├── favicon.ico ├── (front) │ ├── layout.tsx │ ├── loading.tsx │ ├── signin │ │ ├── page.tsx │ │ └── Form.tsx │ ├── register │ │ ├── page.tsx │ │ └── Form.tsx │ ├── shipping │ │ ├── page.tsx │ │ └── Form.tsx │ ├── payment │ │ ├── page.tsx │ │ └── Form.tsx │ ├── place-order │ │ ├── page.tsx │ │ └── Form.tsx │ ├── cart │ │ ├── page.tsx │ │ └── CartDetails.tsx │ ├── profile │ │ ├── page.tsx │ │ └── Form.tsx │ ├── order-history │ │ ├── page.tsx │ │ └── MyOrders.tsx │ ├── order │ │ └── [id] │ │ │ ├── page.tsx │ │ │ └── OrderDetails.tsx │ ├── page.tsx │ ├── product │ │ └── [slug] │ │ │ └── page.tsx │ └── search │ │ └── page.tsx ├── admin │ ├── products │ │ ├── page.tsx │ │ ├── [id] │ │ │ ├── page.tsx │ │ │ └── Form.tsx │ │ └── Products.tsx │ ├── users │ │ ├── page.tsx │ │ ├── [id] │ │ │ ├── page.tsx │ │ │ └── Form.tsx │ │ └── Users.tsx │ ├── orders │ │ ├── page.tsx │ │ └── Orders.tsx │ └── dashboard │ │ ├── page.tsx │ │ └── Dashboard.tsx ├── not-found.tsx ├── layout.tsx └── globals.css ├── postcss.config.js ├── public ├── images │ ├── banner │ │ ├── banner1.webp │ │ └── banner2.webp │ └── categories │ │ ├── Pants.webp │ │ ├── Shirts.webp │ │ └── Handbags.webp ├── readme │ ├── Fashion-Corner-Fullstack-Next-js-Store.webp │ └── Fashion-Corner-Fullstack-Next-js-Store-dark.webp ├── vercel.svg ├── next.svg └── Logo.svg ├── prettier.config.js ├── components ├── Wrapper.tsx ├── footer │ └── Footer.tsx ├── DrawerButton.tsx ├── Providers.tsx ├── categories │ ├── Overlay.tsx │ └── Categories.tsx ├── checkout │ └── CheckoutSteps.tsx ├── slider │ ├── Slider.tsx │ └── CardSlider.tsx ├── header │ ├── Header.tsx │ ├── SearchBox.tsx │ └── Menu.tsx ├── Sidebar.tsx ├── products │ ├── AddToCart.tsx │ ├── ProductItem.tsx │ ├── ProductItems.tsx │ └── Rating.tsx ├── readMore │ ├── ReadMore.tsx │ └── Text.tsx ├── icons │ └── Icons.tsx ├── carousel │ └── carousel.tsx ├── ClientProvider.tsx ├── admin │ └── AdminLayout.tsx └── ui │ ├── button.tsx │ └── carousel.tsx ├── lib ├── dbConnect.ts ├── models │ ├── UserModel.ts │ ├── ProductModel.ts │ └── OrderModel.ts ├── utils.ts ├── hooks │ ├── useLayout.ts │ └── useCartStore.ts ├── auth.ts ├── paypal.ts ├── data.ts └── services │ └── productService.ts ├── types └── next-auth.d.ts ├── components.json ├── .eslintrc.json ├── .gitignore ├── next.config.mjs ├── tsconfig.json ├── README.md ├── middleware.ts ├── package.json └── tailwind.config.ts /app/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- 1 | export { GET, POST } from '@/lib/auth'; 2 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /public/images/banner/banner1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/images/banner/banner1.webp -------------------------------------------------------------------------------- /public/images/banner/banner2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/images/banner/banner2.webp -------------------------------------------------------------------------------- /public/images/categories/Pants.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/images/categories/Pants.webp -------------------------------------------------------------------------------- /public/images/categories/Shirts.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/images/categories/Shirts.webp -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ['prettier-plugin-tailwindcss'], 3 | singleQuote: true, 4 | jsxSingleQuote: true, 5 | }; 6 | -------------------------------------------------------------------------------- /public/images/categories/Handbags.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/images/categories/Handbags.webp -------------------------------------------------------------------------------- /public/readme/Fashion-Corner-Fullstack-Next-js-Store.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/readme/Fashion-Corner-Fullstack-Next-js-Store.webp -------------------------------------------------------------------------------- /public/readme/Fashion-Corner-Fullstack-Next-js-Store-dark.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zyxzb/Fashion-Corner-Next.js-Ecommerce/HEAD/public/readme/Fashion-Corner-Fullstack-Next-js-Store-dark.webp -------------------------------------------------------------------------------- /components/Wrapper.tsx: -------------------------------------------------------------------------------- 1 | const Wrapper = ({ children }: { children: React.ReactNode }) => { 2 | return
20 |
21 |
24 |
25 |
{product.brand}
42 |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 || 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 | 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 |
Admin permission required
19 |
32 | Simply Unique/
Simply Better.
33 |
| 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 |
Description: {product.description}
76 |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 | 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 |
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 |{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 |
{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 |