Technical overviewFull-stack product engineering

Cube Store

A commerce workflow built from storefront to payment boundary.

Source code

Inspect the implementation, commit history, and project documentation.

Role
Solo developer across product design, Angular, Express, data, payments, and deployment
Evidence status
Live at cubestore.pesanth.com as a read-only demo; checkout and admin stay disabled until the exposed Stripe test key is rotated
Verified
2026-08-09

01

Purpose and scope

Cube Store is an Angular and Express storefront for browsing, filtering, wishlisting, and purchasing a collection of artisan cubes. The project joins customer-facing interaction design with a MongoDB API, Stripe checkout, image uploads, and containerized delivery.

What it is used for

  • Browse and filter a product catalogue across desktop and mobile layouts.
  • Manage wishlists and carts before handing payment off to Stripe Checkout.
  • Maintain products and uploaded imagery through administrative flows.
  • Angular
  • TypeScript
  • Express
  • MongoDB
  • Stripe
  • Docker

02

Architecture

Client experience

Client

Browser

Desktop and mobile shoppers

Frontend

Angular storefront

Catalogue, search, wishlist, cart, and admin views

HTTPS · JSON

Application boundary

Backend

Express API

Product, authentication, upload, and checkout routes

Configuration

Runtime configuration

Resolves active API and media origins

Queries · checkout

Data and external services

Database

MongoDB

Products, users, and commerce state

External service

Stripe Checkout

Hosted payment-session boundary

Storage

Uploaded media

Product image storage and delivery

Containerized as

Delivery

Docker

Frontend container

Angular production build

Docker

API container

Express runtime

Public ingress

Cloudflare Tunnel

Outbound-only ingress to a self-hosted Linux server; the earlier AWS environment is retired

Text equivalent: A shopper uses the Angular storefront, which calls the Express API over HTTPS. The API reads products from MongoDB, hands payment sessions to Stripe, and serves uploaded media. Angular and Express are packaged as separate containers for deployment.

03

Engineering decisions

Runtime API configuration

The frontend reads its API origin at runtime so the same build can run locally or behind a hosted endpoint.

Environment-safe image URLs

Stored image paths are rewritten to the active API origin, preventing an upload host from being permanently baked into the storefront.

Responsive product density

The storefront exposes list and grid controls while adapting navigation, filters, and cart behavior for narrow screens.

04

Verification evidence

  • Local API returned 66 MongoDB-backed products.
  • Search reduced the visible collection to matching products after its debounce interval.
  • Adding Wooden Crate updated the cart count to one and produced a $120 cart total.
  • Desktop, mobile storefront, and mobile cart states were captured from the running local application.
verified-2026-08-09
$ GET /api/cubes?sort=desc&limit=All&minPrice=0&maxPrice=150
200 OK · 66 products
$ search: Wooden Crate
cart badge: 1 · total: $120.00
✓ storefront and cart verified locally

05

Demonstrated workflow

06

Limitations