Saltar al contenido
Nahuel Miranda
Pieza de muestra

Mostrador

Punto de venta para autoservicios y minimercados: cobra con el teclado, sigue vendiendo sin internet y cierra la caja con arqueo ciego.

Probar la demo (se abre en otra pestaña)

Demo con datos generados. PIN: Admin 1234 · Supervisor 2222 · Cajero 1111.

Rubro
Punto de venta para autoservicios
Fecha
Septiembre 2026
Formato
Aplicación web instalable
Tecnología
Next.js, TypeScript, PostgreSQL, Prisma, Playwright
Mostrador en celular

El proyecto

Un sistema de caja para un autoservicio con varias cajas y empleados. Resuelve dos cosas: cobrar rápido y saber qué pasó con la plata al final del turno. Se instala como aplicación en la PC o la tablet del mostrador.

Es una pieza de muestra: el negocio del ticket no existe y los 400 productos, las 1.500 ventas y los cierres de caja son datos generados. Los medios de pago registran el importe, no lo procesan.

Qué tiene

  • Cobro con el teclado

    Buscador, grilla por categoría, carrito y diez atajos: F2 cobra, F7 vende por peso, F8 aplica descuento, F9 suspende la venta. Una venta de tres productos en efectivo se hace sin tocar el mouse.

  • Ventas sin conexión

    Si se corta internet, la venta se cobra igual, queda en una cola local y se sincroniza sola cuando vuelve la conexión.

  • Caja con arqueo ciego

    Al cerrar, el cajero declara lo que contó sin ver lo que el sistema esperaba. La diferencia aparece recién después.

  • Control del negocio

    Stock con registro de movimientos, historial con anulaciones, auditoría, y un panel con ventas por día y por hora, medios de pago y margen.

  • Tres roles con PIN

    Administrador, supervisor y cajero. El ingreso se bloquea después de cinco intentos fallidos.

Cómo está hecho

  • Dinero en centavos enteros

    No hay un solo número decimal ni un parseFloat en todo el proyecto. Las cantidades se guardan en milésimas, así lo que se pesa tampoco pasa por coma flotante.

  • El total lo calcula el servidor

    La pantalla manda productos y cantidades; el precio sale de la base. El total del carrito es informativo: el que se registra lo recalcula el servidor.

  • Capas que no se saltean

    Ruta, servicio y repositorio. Hay reglas de ESLint que fallan si una ruta toca la base directamente.

  • Pruebas

    Unitarias y de integración, cobertura del 100 % obligatoria en la lógica de dinero, y los flujos críticos probados en Chromium con Playwright, incluido el modo sin conexión.

  • Dos auditorías

    Calidad, seguridad y concurrencia, antes de la versión 1.0.0.

Datos

Productos de muestra
400
Ventas generadas
1.500
Roles
3
Versión
1.0.0

Más pantallas

Panel del dueño: ventas por día, ticket promedio, margen y productos bajo el mínimo.
Historial de ventas con filtros por número, fecha y estado.
Ingreso por usuario y PIN.

Colores y tipografías

  • #0A0E13
  • #121A22
  • #EEF4FA
  • #21C77A
  • #F7B93B
  • #FF6B6B
  • Geist

Presupuesto sin cargo.

Contame qué hace tu negocio y qué necesitás de la web. Con eso te paso un presupuesto cerrado. Trabajo desde Córdoba; en la ciudad, también en persona.