Juan PabloSoftware developerIf you can imagine it, we can build it.

Enterizos Shop

A platform to manage the full cycle of a clothing store: catalog, inventory, orders, payments, invoicing and shipping. The foundation is built and tested (architecture and business rules); the storefront and real integrations are the next stages.

enterizos shopEnterizos Shop: the site's home pageComing soon
Status
In development
Since
July 2026
Stack
Next.jsTypeScriptPostgreSQLPrismaTurborepoGraphile WorkerBetter AuthVitestGitHub Actions

Problems and how I solved them

  1. 01

    ProblemA store's inventory gets messy when all you keep is a number that gets overwritten.

    SolutionI designed it as a movement ledger: every inbound, outbound or adjustment is recorded, so stock can be rebuilt and reconciled (a decision documented in an ADR).

  2. 02

    ProblemAn order can't end up in an impossible state, like shipped without being paid.

    SolutionOrders follow an explicit state machine, with the allowed transitions defined up front.

  3. 03

    ProblemEvents between the database and background jobs must never be lost.

    SolutionTransactional outbox pattern: the event is saved in the same transaction as the change, and a Graphile Worker job processes it.

  4. 04

    ProblemIn a project this size, architecture erodes with every change if nobody keeps watch.

    SolutionModule dependency rules checked automatically on every change, plus continuous integration, CodeQL security analysis and dead-code detection.

What's built

  • Architecture documented and frozen, with 14 recorded decisions (ADRs).
  • Monorepo with a web app, a background worker and automated quality checks.
  • 36 business modules (catalog, inventory, cart, orders, payments, invoicing, shipping and more), each with its tests.
  • A test that runs the full sale flow, from catalog to shipment.

What's still in progress

  • Connect the modules to the database (they currently keep data in memory).
  • Admin dashboard for catalog and inventory, already started.
  • Public storefront and integration with real payment, invoicing and shipping providers.
  • Private pilot with real orders.