Adds the §4.5 Auto-compaction section to architecture.md and architecture.es.md describing the trigger, fallback, persistence and the new SSE 'compaction' event so consumers know how to react. Includes the three placeholder projects used while exercising the feature end to end (bot-onboarding, dashboard-metricas, tienda-ropa) so /api/reindex picks them up without further setup.
34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
---
|
|
title: "Online Clothing Store"
|
|
date: 2025-03
|
|
status: "live"
|
|
tags: ["Next.js", "Stripe", "PostgreSQL", "e-commerce"]
|
|
repo: "https://github.com/example/tienda-ropa"
|
|
demo: "https://example.com"
|
|
---
|
|
|
|
# Online Clothing Store
|
|
|
|
End-to-end e-commerce platform for an independent clothing brand. Catalogue, cart, checkout and an admin dashboard in a single product.
|
|
|
|
## Description
|
|
|
|
A full-stack e-commerce site built for an independent fashion brand. Customers browse a catalogue, build a cart, and pay through Stripe Checkout; the merchant manages stock, orders, and fulfilment from a custom admin dashboard.
|
|
|
|
## Tech stack
|
|
|
|
- **Framework:** Next.js (App Router)
|
|
- **Payments:** Stripe (hosted Checkout + webhooks)
|
|
- **Database:** PostgreSQL with Prisma ORM
|
|
- **Rendering:** Server-side for catalogue SEO, ISR with on-demand revalidation when stock changes
|
|
|
|
## Main features
|
|
|
|
1. Catalogue with per-product SEO-friendly routes
|
|
2. Stripe Checkout integration without PCI scope
|
|
3. Admin dashboard for stock and order management
|
|
4. Webhook-driven order confirmation and stock decrement
|
|
|
|
## Learnings
|
|
|
|
Keeping inventory in sync between the admin dashboard and Stripe without race conditions was the hardest part. Solved with serializable transactions and an optimistic lock per SKU. On the next iteration, an event-driven approach with an outbox table would be more robust under load.
|