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: product, Angular, Express, data, payments, deployment
Evidence status
Live at cubestore.pesanth.com; read-only catalogue with Stripe test checkout running end to end
Verified
2026-08-09

01

Purpose and scope

An Angular and Express storefront for browsing, filtering, wishlisting, and buying artisan cubes, backed by MongoDB, Stripe checkout, and containerized delivery.

What it is used for

  • Browse and filter the catalogue on desktop and mobile.
  • Manage wishlist and cart, then check out through Stripe.
  • Maintain products and images through admin flows.
  • Angular
  • TypeScript
  • Express
  • MongoDB
  • Stripe
  • Docker

02

Architecture

Client experience

Client

Browser

Desktop and mobile shoppers

Frontend

Angular storefront

Catalogue, wishlist, cart, admin

HTTPS · JSON

Application boundary

Backend

Express API

Product, auth, upload, checkout routes

Configuration

Runtime configuration

Resolves active API and media origins

Queries · checkout

Data and external services

Database

MongoDB

Products, users, commerce state

External service

Stripe Checkout

Hosted payment boundary

Storage

Uploaded media

Product image storage

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 server

Text equivalent: The Angular storefront calls the Express API over HTTPS; the API reads products from MongoDB, hands payment to Stripe, and serves uploaded media, with frontend and API shipped as separate containers.

03

Engineering decisions

Runtime API configuration

The frontend reads its API origin at runtime, so one build runs locally or behind a hosted endpoint.

Environment-safe image URLs

Stored image paths are rewritten to the active API origin, so no upload host is baked into the build.

Responsive product density

List and grid views adapt navigation, filters, and cart for narrow screens.

04

Verification evidence

  • Local API returned 66 MongoDB-backed products.
  • Search narrowed the collection to matching products after its debounce.
  • Adding Wooden Crate set the cart to one item and a $120 total.
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