All Projects

UWEAR UK

Full e-commerce ecosystem with storefront, backend, and admin dashboard

UWEAR UK — e-commerce ecosystem overview

UWEAR UK is a complete e-commerce ecosystem I built across three separate applications: a customer-facing storefront, a REST API backend, and an admin dashboard. Each serves a distinct user and runs independently.

The storefront is a React 18 application with Chakra UI and Tailwind CSS. It handles the full shopping flow: product browsing with filters (product type, interest, gender, sale status), image zoom on product details, size selection, cart management, and multi-step checkout. The cart system works in dual mode: guest users get localStorage-based carts, and logged-in users get server-synced carts that persist across devices. On login, the guest cart merges with the server cart automatically.

Authentication uses JWT tokens with Axios interceptors that inject the Bearer token on every request and handle 401 responses globally. When a token expires, users get redirected to login without crashing the app.

The backend runs Express with MongoDB (Mongoose). Stripe handles payment processing through checkout sessions. When Stripe sends a webhook confirming payment, the backend creates the order record, decrements inventory, and fires a SendGrid email with an HTML template matching the UWEAR brand (gold and black theme). Product images are organised by serial number in a Multer-based upload system with 5MB limits.

The admin dashboard is a separate React app with Bootstrap and Chart.js. It polls the backend every 5 seconds for new orders and plays an audio notification when one arrives. Store owners can view 30-day sales charts, track order statuses, print orders with formatted HTML tables, manage product listings with image uploads, and monitor low-stock alerts. The dashboard uses session-based authentication (separate from JWT) for admin access.

The frontend is deployed on Hostinger, and the backend and admin dashboard run on Render.

Key Features

  • Dual cart system: localStorage for guests, server-sync for logged-in users
  • Stripe checkout sessions with webhook-driven order confirmation
  • Admin dashboard with Chart.js 30-day sales analytics
  • Real-time order polling with audio notifications
  • Order printing with formatted HTML templates
  • SendGrid branded transactional emails
  • Product image upload organised by serial number
  • Low-stock alerts and inventory tracking across 200+ products

Tech Stack

React 18Chakra UITailwind CSSExpressMongoDBMongooseStripeSendGridJWTChart.jsBootstrapMulter

Next project

GeoThreadBot