Features
Every page, screen and capability that ships, surface by surface.
Storefront

| Page | Route | Notes |
|---|---|---|
| Home | / | Hero carousel, categories, tabbed best-sellers, ranked lists, sale countdown, sellers, journal, newsletter |
| Shop | /shop | Category, price, sale and rating filters; sort; paging; ?cat= ?q= ?sale=1 |
| Product | /product/[slug] | Gallery, description, nutrition, verified reviews, delivery promises, related items |
| Cart / Checkout | /cart /checkout | Coupons, delivery windows, COD or Stripe Checkout, success and cancel pages |
| Account | /account/* | Orders, order detail, addresses (CRUD), profile, security, notifications, Plus |
| Wishlist | /wishlist | Account-backed; guests are asked to sign in |
| Tracking | /track | Order timeline from a reference |
| Auth | /auth + drawer | Sign in, register (with email verification), reset; Google, Facebook, GitHub, X, LinkedIn; the drawer opens from the header |
| Journal | /journal /journal/[slug] (/blog redirects) | Categories, authors, related posts |
| Sellers | /sellers /sellers/[slug] | Seller profile, rating, their products |
| Sale promos | /sales/[slug] | Themed promo landing pages managed from the dashboard |
| Content | /about /contact /faq | FAQ emits FAQPage JSON-LD; contact form posts to the API |
| Legal | /privacy /terms /cookies /shipping /returns | Managed as documents |
| System | /coming-soon /maintenance 404 | Plus global and segment error boundaries and a cookie banner |

Dashboard

Fifty-plus screens from one sidebar. The bespoke ones:
- Dashboard — KPIs, revenue by month, revenue by aisle, recent orders, below-reorder-point, best-selling lines.
- Products — table and grid views, create/edit drawer, multi-image staging (nothing uploads until Save), required category and brand.
- Orders — status machine with payment-aware transitions, order detail, line editing repriced from the catalogue.
- Accounts — a ledger of every payment and refund; card payments post themselves, cash on delivery is collected, handed over and confirmed by accounts before an order can complete.
- Users & Roles — add users with any role, change roles, employee job roles (packer, deliveryman, accounts, incharge, call centre).
- Customers, Reviews moderation, Returns & refunds, Abandoned carts, Sale promos, Earnings, Notifications, DB status.
- Settings — six tabs (general, shop, SEO, payments, maintenance, integrations) on one store-settings document; delivery pricing here is what checkout charges.
- Legal documents — an editor for privacy, terms, cookies, shipping and returns with ordered sections and a publish switch.
Everything else — sellers, seller applications, inventory, withdrawals, tax rules, FAQ, featured deals, home-page blocks, categories, brands, coupons, tags, banners, blog, team, social links, shipping zones and more — is a registry entry in src/data/resources.ts. Every registry screen gets the same CRUD contract: bulk select with delete, view / edit / delete per row, a details drawer, a sectioned create/edit drawer with validation, and an inline activate / deactivate switch where the resource has a status.
API
- 60+ resource routers under
/api/*, documented at/api/docs(Swagger UI). - JWT auth with roles
user·admin·employee·seller·preview(read-only demo); the seller role is granted only by approving a seller application. - First-run
/setupthat closes itself once an administrator exists. - Social sign-in — Google, Facebook, GitHub, X and LinkedIn — as a server-side OAuth 2.0 code flow the API runs end to end; Google's ID token is verified against Google's JWKS.
- Orders: COD and Stripe Checkout, stock checked and reduced atomically, signed webhook.
- Uploads to ImageKit or Cloudinary — chosen in the dashboard — scoped under a configurable root folder.
- Helmet, CORS allowlist, rate limiting, mongo-sanitize, hpp, an API-monitor log.
check:api— a 140-check live suite that creates and cleans up its own records.