Folder Structure

The Repo

shopease-web/
├── app/
│   ├── layout.tsx                    fonts, Providers, <html>
│   ├── (shop)/
│   │   ├── layout.tsx                Navbar (CartBadge), Footer
│   │   ├── page.tsx
│   │   ├── category/[slug]/page.tsx
│   │   ├── products/[slug]/
│   │   │   ├── page.tsx  loading.tsx  not-found.tsx  opengraph-image.tsx
│   │   ├── search/page.tsx
│   │   ├── cart/{page.tsx, actions.ts}
│   │   ├── checkout/{page.tsx, actions.ts, payment/page.tsx}
│   │   └── account/{layout.tsx, orders/page.tsx}
│   ├── (auth)/{layout.tsx, login/page.tsx, register/page.tsx}
│   ├── admin/{layout.tsx, page.tsx, products/..., orders/...}
│   ├── api/{auth/[...nextauth]/route.ts, webhooks/razorpay/route.ts, health/route.ts}
│   ├── sitemap.ts  robots.ts  not-found.tsx  global-error.tsx
├── components/        ProductCard, AddToCartButton, SearchBox, Filters, Modal
├── lib/
│   ├── prisma.ts  env.ts  format.ts  slug.ts  filters.ts
│   ├── dal/       products.ts  orders.ts  checkout.ts  (server-only)
│   └── authz.ts
├── auth.ts            Auth.js config
├── middleware.ts      (proxy.ts on Next.js 16)
├── prisma/schema.prisma
├── e2e/               Playwright tests
├── next.config.ts  Dockerfile  .github/workflows/ci.yml