├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── components.json ├── next.config.mjs ├── package.json ├── postcss.config.js ├── prisma ├── migrations │ ├── 20240227191221_init │ │ └── migration.sql │ └── migration_lock.toml └── schema.prisma ├── src ├── actions │ └── orders.tsx ├── app │ ├── (customerFacing) │ │ ├── layout.tsx │ │ ├── orders │ │ │ └── page.tsx │ │ ├── page.tsx │ │ ├── products │ │ │ ├── [id] │ │ │ │ └── purchase │ │ │ │ │ ├── _components │ │ │ │ │ └── CheckoutForm.tsx │ │ │ │ │ └── page.tsx │ │ │ ├── download │ │ │ │ ├── [downloadVerificationId] │ │ │ │ │ └── route.ts │ │ │ │ └── expired │ │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ └── stripe │ │ │ └── purchase-success │ │ │ └── page.tsx │ ├── actions │ │ └── orders.ts │ ├── admin │ │ ├── _actions │ │ │ ├── orders.ts │ │ │ ├── products.ts │ │ │ └── users.ts │ │ ├── _components │ │ │ └── PageHeader.tsx │ │ ├── layout.tsx │ │ ├── loading.tsx │ │ ├── orders │ │ │ ├── _components │ │ │ │ └── OrderActions.tsx │ │ │ └── page.tsx │ │ ├── page.tsx │ │ ├── products │ │ │ ├── [id] │ │ │ │ ├── download │ │ │ │ │ └── route.ts │ │ │ │ └── edit │ │ │ │ │ └── page.tsx │ │ │ ├── _components │ │ │ │ ├── ProductActions.tsx │ │ │ │ └── ProductForm.tsx │ │ │ ├── new │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ └── users │ │ │ ├── _components │ │ │ └── UserActions.tsx │ │ │ └── page.tsx │ ├── globals.css │ ├── layout.tsx │ └── webhooks │ │ └── stripe │ │ └── route.tsx ├── components │ ├── Nav.tsx │ ├── ProductCard.tsx │ ├── page.tsx │ └── ui │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── dropdown-menu.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── table.tsx │ │ └── textarea.tsx ├── db │ └── db.ts ├── email │ ├── OrderHistory.tsx │ ├── PurchaseReceipt.tsx │ └── components │ │ └── OrderInformation.tsx ├── lib │ ├── cache.ts │ ├── formatters.ts │ ├── isValidPassword.ts │ └── utils.ts └── middleware.ts ├── tailwind.config.ts └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/README.md -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/components.json -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/next.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/postcss.config.js -------------------------------------------------------------------------------- /prisma/migrations/20240227191221_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/prisma/migrations/20240227191221_init/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/prisma/schema.prisma -------------------------------------------------------------------------------- /src/actions/orders.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/actions/orders.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/layout.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/orders/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/orders/page.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/page.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/products/[id]/purchase/_components/CheckoutForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/products/[id]/purchase/_components/CheckoutForm.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/products/[id]/purchase/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/products/[id]/purchase/page.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/products/download/[downloadVerificationId]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/products/download/[downloadVerificationId]/route.ts -------------------------------------------------------------------------------- /src/app/(customerFacing)/products/download/expired/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/products/download/expired/page.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/products/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/products/page.tsx -------------------------------------------------------------------------------- /src/app/(customerFacing)/stripe/purchase-success/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/(customerFacing)/stripe/purchase-success/page.tsx -------------------------------------------------------------------------------- /src/app/actions/orders.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/actions/orders.ts -------------------------------------------------------------------------------- /src/app/admin/_actions/orders.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/_actions/orders.ts -------------------------------------------------------------------------------- /src/app/admin/_actions/products.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/_actions/products.ts -------------------------------------------------------------------------------- /src/app/admin/_actions/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/_actions/users.ts -------------------------------------------------------------------------------- /src/app/admin/_components/PageHeader.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/_components/PageHeader.tsx -------------------------------------------------------------------------------- /src/app/admin/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/layout.tsx -------------------------------------------------------------------------------- /src/app/admin/loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/loading.tsx -------------------------------------------------------------------------------- /src/app/admin/orders/_components/OrderActions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/orders/_components/OrderActions.tsx -------------------------------------------------------------------------------- /src/app/admin/orders/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/orders/page.tsx -------------------------------------------------------------------------------- /src/app/admin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/page.tsx -------------------------------------------------------------------------------- /src/app/admin/products/[id]/download/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/[id]/download/route.ts -------------------------------------------------------------------------------- /src/app/admin/products/[id]/edit/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/[id]/edit/page.tsx -------------------------------------------------------------------------------- /src/app/admin/products/_components/ProductActions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/_components/ProductActions.tsx -------------------------------------------------------------------------------- /src/app/admin/products/_components/ProductForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/_components/ProductForm.tsx -------------------------------------------------------------------------------- /src/app/admin/products/new/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/new/page.tsx -------------------------------------------------------------------------------- /src/app/admin/products/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/products/page.tsx -------------------------------------------------------------------------------- /src/app/admin/users/_components/UserActions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/users/_components/UserActions.tsx -------------------------------------------------------------------------------- /src/app/admin/users/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/admin/users/page.tsx -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/webhooks/stripe/route.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/app/webhooks/stripe/route.tsx -------------------------------------------------------------------------------- /src/components/Nav.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/components/Nav.tsx -------------------------------------------------------------------------------- /src/components/ProductCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebDevSimplified/next-js-ecommerce-mvp/HEAD/src/components/ProductCard.tsx -------------------------------------------------------------------------------- /src/components/page.tsx: -------------------------------------------------------------------------------- 1 | export default function Home() { 2 | return