← Back to projects

Glow Lab

Fun e-commerce storefront demo with Stripe checkout and clear order states.

  • #CartStateSync
  • #CheckoutFlow
  • #PaymentStatusHandling
  • #OrderConfirmation
  • #RESTRoutes

Project overview

Glow Lab is an e-commerce platform showcasing a direct-to-consumer beauty brand. Built with React and Express, it features a seamless shopping experience with Stripe integration for secure payments. The application demonstrates essential e-commerce functionality including product browsing, cart management, and a streamlined checkout process.

Engineering challenges

  • Keeping cart quantity and line totals in sync as shoppers move between catalog, cart, and checkout routes—so add/remove actions in React update what checkout sends to the server without stale items.
  • Splitting Stripe responsibilities: Express creates payment intents with the secret key while the Vite client mounts Payment Element with the publishable key—card data flows through Stripe, not custom payment handlers.
  • Designing explicit success and failure screens after Payment Element completes so users get clear confirmation or can retry without losing context on what was in the cart.

Features

  • Interactive product catalog with detailed product information and images
  • Dynamic shopping cart with real-time updates
  • Secure payment processing through Stripe Payment Element integration
  • Responsive design for optimal viewing across all devices
  • Clear order confirmation and transaction status feedback
  • RESTful API endpoints for product and order management

Architecture

flowchart TB
  subgraph fe [1. Frontend — React + Vite]
    router[React Router — catalog, cart, checkout]
    cart[Cart state — add, remove, totals]
    payUI[Stripe Payment Element]
    router --> cart --> payUI
  end
  subgraph be [2. Backend — Node.js + Express]
    api[REST API — products and checkout]
    stripeSDK[Stripe SDK — secret key]
    api --> stripeSDK
  end
  stripe[Stripe — payment processing]
  router -->|Fetch products| api
  cart -->|Create payment intent| api
  payUI -->|Confirm card payment| stripe
  stripeSDK -->|Payment intents and charges| stripe

Technologies used

Frontend

React, Vite, React Router, CSS

Backend

Node.js, Express.js, RESTful APIs

Payments

Stripe API, Stripe Payment Element

Infra

Render