Full-Featured E-commerce & Admin Platform

Job ID: 39831936

Budget: $30 – $250 USD

Next.js + Tailwind E-commerce + Admin (Express + SQL)
Summary

Build a production-ready e-commerce platform with a customer storefront and a full-fledged admin panel on the same website. Frontend in Next.js + Tailwind, backend in Node/Express, database in SQL (prefer PostgreSQL). Clean, modern UI, secure auth, robust order & inventory workflows, and clear docs.

Tech Requirements

Frontend: Next.js (app router), Tailwind CSS, TypeScript

Backend: Node.js Express REST API (or Express custom server that serves Next)

ORM: Prisma (preferred) or Sequelize

DB: PostgreSQL (preferred) or MySQL

Auth: NextAuth (credentials + OAuth optional), JWT-based sessions, RBAC

Payments: Stripe (cards, Apple/Google Pay); design extensible gateway interface

Email/Notifications: Resend/SendGrid + webhooks; toast/in-app notifications

Search: Server-side Postgres full-text search (and pluggable adapter for Meilisearch/Algolia later)

Files/Media: Image upload + optimization (Sharp), S3-compatible storage

Infra: Dockerized; .env management; CI/CD (GitHub Actions)

Quality: ESLint, Prettier, unit/integration tests (Vitest/Jest + Playwright)

User-Facing Storefront (MVP+)

Product catalog: categories, collections, tags, filters (price, attributes), pagination

Product details: gallery, variants (size/color), stock status, rich description, reviews/ratings

Cart & checkout: guest + authed carts, shipping & tax calculation, discounts/coupons, order summary, Stripe payment

Customer accounts:

Register/login, password reset

View order history, order detail, invoices

Track orders, cancel (pre-fulfillment), request returns/refunds, re-order past orders

Addresses & payment methods vault (Stripe)

Search: typeahead and results page with relevancy & filters

Content basics: home/landing, about, contact, FAQs, policy pages

SEO/perf: metadata, OG tags, sitemap/robots, image optimization, Lighthouse 90+

Admin Panel (same site, protected)

Dashboard: sales KPIs, conversion, AOV, top products, low-stock alerts

Products:

Create/Update/Delete products, variants, attributes, images

Bulk import/export (CSV)

Draft/publish, schedule, visibility, collections

Inventory:

Stock counts per variant, safety stock, backorder rules

Adjustments & audit log

Orders:

View/manage orders, statuses (payment pending/paid/fulfillment/partially fulfilled/refunded/canceled)

Issue refunds/partial refunds, resends, cancellations with reason codes

Print/download invoice and packing slip

Customers:

Profiles, notes, order history, lifetime value

Segments & export

Discounts/Promotions:

Coupon codes (flat/percent), min spend, product/collection scope, usage limits, start/end dates

Fulfillment & Shipping:

Shipment creation (manual for MVP), tracking URL, status updates

Shipping zones/rates (flat for MVP)

Returns (RMA):

Return requests, approve/deny, restock, refund flow

Content (basic CMS):

Manage pages (terms, privacy, shipping, returns), homepage banners/blocks

Support inbox (private):

Inventory requests, customer requests queue (simple CRUD + status + assignee)

Users & Roles:

RBAC (Admin, Manager, Support, Warehouse)

Activity/audit logs (who changed what, when)

Settings:

Payments, taxes (flat or region presets), shipping zones, storefront theme tokens (colors, logos)

Integrations (Stripe keys, email provider, storage bucket)

Security & Compliance

Role-based access control + server-side auth checks

Input validation (Zod), rate limiting (per IP & per user), CSRF where applicable

Secure headers, HTTPS-only cookies, password hashing (bcrypt/argon2)

PII minimization; Stripe handles card data

Audit logs for admin actions

Suggested Architecture

Monorepo (single app):

/apps/web – Next.js (serves admin + storefront routes)

/apps/api – Express API (auth, catalog, orders, etc.)

Option A: Express runs separately behind reverse proxy; Next communicates via REST

Option B: Custom server: Express mounts Next request handler (single process)

/packages/db – Prisma schema & client

Shared types between web/api

Database entities (core):

User, Role, Session

Product, ProductVariant, Collection, Category, Attribute, Image

InventoryItem (by variant), InventoryAdjustment

Cart, CartItem

Order, OrderItem, Payment, Shipment, Address, Refund, ReturnRequest

Discount, DiscountCode

CustomerRequest, InventoryRequest

AuditLog, ContentPage, Setting

Events/webhooks: payment succeeded/failed, order created/fulfilled/refunded

Deliverables

Source code (TypeScript) in GitHub, with README, env samples, and setup scripts

Docker files for web + api + db, and a docker-compose.yml for local dev

Prisma schema & migrations; seed script with sample data

Fully functional UI:

Storefront pages & flows (browse → cart → checkout → order)

Admin panel with all CRUD & workflows listed above

Payment flow with Stripe (test mode)

Email templates (order confirmation, shipping update, password reset)

PDF invoice & packing slip generator

Tests: key services/routes + smoke E2E for checkout & admin CRUD

CI/CD (GitHub Actions): lint, test, build, deploy

Deployment guide (e.g., Docker on Ubuntu with Nginx reverse proxy, HTTPS via Let’s Encrypt)

Documentation: architecture overview, endpoint list, environment variables, admin user guide