Full-Stack · 2026 Completed

ShopForge

Full-stack commerce learning and demo system covering auth, catalog, cart, orders, and admin — cash on delivery only, without a payment gateway.

  • React
  • Vite
  • Tailwind CSS
  • Express
  • Prisma
  • SQLite
  • JWT
  • Zod
  • PostgreSQL-portable
Public storefront home with a clear path into browsing products.
Catalog browse view for discovering products before opening a detail page.
Product detail with pricing and add-to-cart into the local-storage cart.
Local-storage cart drawer for reviewing items before checkout.
Checkout limited to cash on delivery — no payment gateway integration.
Admin overview for monitoring store activity and recent orders.
Order management for reviewing and updating cash-on-delivery orders.
Mobile storefront home for browsing on small screens.
Mobile catalog layout for product browsing.
Mobile product detail with add-to-cart.

Overview

ShopForge is a full-stack commerce learning and demo system. It covers customer authentication, a product catalog, a local-storage shopping cart, cash-on-delivery checkout, order persistence, and an admin area for dashboard and order management.

The stack is React 18 with Vite and Tailwind CSS on the frontend, and Express with Prisma, JWT, and Zod on the API. Development uses SQLite with a Prisma model written to stay portable to PostgreSQL. There is no payment gateway: checkout is cash on delivery only, and the project is not presented as a live commercial storefront.

Architecture

How the pieces connect, from client to data.

ShopForge architecture diagram
React + Vite storefront FRONTEND React admin UI FRONTEND Express REST API BACKEND JWT auth BACKEND Prisma + SQLite DATA Local-storage cart FRONTEND

Features

  • JWT authentication for customers and admin Completed
  • Product catalog and product detail pages Completed
  • Local-storage shopping cart Completed
  • Cash-on-delivery checkout (no payment gateway) Completed
  • Admin dashboard and order management Completed
  • Prisma schema with SQLite in development, PostgreSQL-portable Completed
  • Request validation with Zod Completed
  • Responsive storefront on mobile viewports Completed

Challenges

  • Covering a realistic commerce path without introducing payment-provider complexity or implying a live storefront.
  • Keeping cart state simple and durable on the client while orders remain authoritative on the server.
  • Modeling catalog and order data so SQLite works for local development while remaining portable to PostgreSQL.

Solutions

  • Limited checkout to cash on delivery and framed the project as a learning and demo system rather than a commercial launch.
  • Persisted the shopping cart in local storage and created server-side orders at checkout.
  • Used Prisma with SQLite for development and a schema intended to move to PostgreSQL without a redesign.

Security

  • JWT-based authentication for protected customer and admin routes.
  • Zod validation on API request payloads.
  • Admin order and catalog operations separated from the public storefront.

Testing

  • Manual verification of catalog browse, cart, checkout, and admin order flows.
  • Auth and validation checks for protected API routes.

Deployment

  • Not deployed as a public commercial storefront.
  • Local development against SQLite via Prisma.
  • Prisma model kept portable for PostgreSQL when needed.