Skip to content

Feat/ecommerce services and UI#51

Merged
basebandit merged 16 commits into
mainfrom
feat/ecommerce-services-and-ui
Jun 29, 2026
Merged

Feat/ecommerce services and UI#51
basebandit merged 16 commits into
mainfrom
feat/ecommerce-services-and-ui

Conversation

@basebandit

Copy link
Copy Markdown
Owner

Summary

Completes the e-commerce app: adds the 4 missing services + a web UI, and closes
the order saga loop (order.shipped / order.delivered).

New services

Service Stack Role
gateway Go / Gin Public edge — validates JWT, forwards user headers
auth Java / Spring Boot Register / login, emits user.registered
shipping Python / FastAPI Ships confirmed orders, emits shipment.*
notifications Java / Spring Boot Emails saga events (MailHog)
web TanStack Start Storefront, cart, checkout, live order tracking

Fixes to existing services

  • orders — closes saga (shipment.*order.shipped/delivered), real
    pricing, cart cleanup on checkout, remove + quantity stepper.
  • payments — camelCase event keys so the saga actually confirms.

Saga (now complete)

created → reserved → paid → confirmed → shipped → delivered
(failure → cancelled)

Run it

docker compose up --build
./apps/inventory/seed-products.sh
# web :3000 · rabbitmq :15672 · mailhog :8025

Tests: all service unit tests + Playwright e2e pass; full saga verified via Docker.

basebandit added 16 commits May 27, 2026 10:00
…antity update

Cart is now deleted on checkout, prices fetched from inventory, shipping_address nullable for carts, and items support per-line quantity changes.
Events were emitted snake_case, so the orders saga never matched payment.completed and orders stalled before confirmation.
Remove unused imports/vars, scope the lint glob to src/ (test/ isn't in tsconfig), and apply the repo's prettier formatting that eslint --fix normalizes.
… to payments

Move the all-files pre-commit run into its own workflow that installs terraform/tflint so those hooks actually execute; payments-lint now only runs payments deep checks.
PRs only lint what they touch (no blocking on unrelated drift); main runs --all-files as a drift guard. Terraform hooks left to terraform.yml. Documents the local pre-commit loop in docs/local-development.md.
…rvice spec

addToCart/createOrder now fetch real prices via fetch(), and removeFromCart loads the cart from the DB — the specs now stub global.fetch and orderRepository.findOne to match.
@basebandit basebandit merged commit 170aa7a into main Jun 29, 2026
3 checks passed
@basebandit basebandit deleted the feat/ecommerce-services-and-ui branch June 29, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant