Saltar al contenido
Tema
Hablemos ->

Works/POS System

POS System

Punto de venta configurable por dominio, con núcleo hexagonal y transacciones atómicas.

SectorRetail / punto de ventaAño2026RolArquitectura y desarrollo full-stackVer códigoVer código ->
El reto
Un punto de venta que sirviera igual para ferretería, retail y electrónica, sin forkear el código por cliente.
La solución
Núcleo de dominio agnóstico, puertos y adaptadores, Prisma con transacciones atómicas, RBAC y eventos de dominio. Escáner de código de barras y cuenta corriente.
El resultado
Un core configurable por metadatos de producto y unidades, con ventas, deuda de clientes y cierre de caja en la misma transacción.

Contexto

Cada negocio llama distinto a lo mismo: unidad, kilo, caja, metro. Un POS cerrado obliga a duplicar el proyecto para cada rubro.

Decisión

El dominio no sabe de Vue ni de Prisma. Los casos de uso orquestan puertos, y la infraestructura implementa esos puertos con Prisma. El cobro, el descuento de stock y la deuda del cliente ocurren en una transacción atómica.

Detalles técnicos

  • Arquitectura hexagonal con puertos y adaptadores.
  • RBAC para administrador y cajero, verificado en el servidor.
  • Eventos de dominio para venta completada y stock bajo.
  • Estrategias de pago intercambiables: efectivo, tarjeta y cuenta corriente.

Qué aprendí

La configurabilidad real no está en los formularios: está en el modelo. Si el producto puede describir sus unidades y metadatos, el POS no necesita un if por rubro.

[10] hablemos

¿Tu operación no cierra?

Cuéntame dónde duele: planillas paralelas, stock que no cuadra, procesos que dependen de una persona. Te respondo con un diagnóstico, no con una propuesta a ciegas.