/casos/punto-de-venta-tablet
La pantalla se mide en lo que el cajero alcanza con el pulgar
Punto de venta para un negocio de bebidas y comida. El cajero cobra de pie, en una tablet, con el total en dólares y en bolívares a la vez. El dueño entra por otra puerta y ve productos, inventario, tasa e historial.
- Cliente
- Negocio de bebidas y comida, Venezuela
- Rol
- Desarrollador. Diseño de las dos pantallas contra la tablet real del negocio, modelo de datos, doble moneda y despliegue.
- Periodo
- 2026 — presente
- Estado
- En producción
El problema
Cobrar en Venezuela son dos cuentas a la vez. El precio se piensa en dólares, el cliente paga en bolívares, y entre una cosa y otra está la tasa del día. Hacerlo con calculadora delante de una cola es lento y se equivoca.
Y no es una pantalla, son dos oficios distintos. El cajero está de pie, con prisa y con una mano ocupada. El dueño está sentado y quiere saber qué se vendió y qué queda. Meter los dos en la misma pantalla deja a los dos incómodos.
La decisión
La pantalla se midió contra la tablet de verdad, no contra un navegador
La caja se diseñó para una tablet Android concreta, en horizontal, con unos 960×520 útiles. Ahí apareció el fallo que no sale en un portátil: la altura se estaba tomando con 100dvh, y en esa tablet 100dvh medía más que lo que de verdad se ve. El resultado era que el botón «Confirmar pago» quedaba tapado por la barra del navegador. El botón existía, respondía y no se podía tocar.
Se cambió por window.innerHeight, guardado en una variable de CSS. No es más elegante: es lo único que mide lo que el cajero ve. La diferencia entre las dos medidas es justo la barra del navegador, y esa barra es donde estaba el botón que cierra la venta.
La distribución también se decidió mirando, no discutiendo. Se probó la de una foto de referencia —el bloque grande a la izquierda, comida y cobro apilados a la derecha— y el dueño prefirió la otra. Quedó escrito en el documento de diseño con fecha, para que nadie la vuelva a cambiar por intuición.
Qué construí
- Caja: se toca el producto y suma una unidad. El total sale en dólares y en bolívares a la vez, con la tasa del día.
- Lo que no hay no se puede vender: sin inventario el botón aparece como «Agotado» y no responde.
- Dos vistas de producto —botones o lista— y cada equipo recuerda la suya.
- Panel del dueño: productos, precios en dólares, inventario, tasa e historial de pagos, imprimible y en PDF.
- Tres métodos de pago y una nota libre por venta, para la referencia del pago móvil o el número de mesa.
Se ve mejor usándolo que leyéndolo. Hay una instancia abierta con productos y ventas inventados:
Cobra una venta
Es el mismo software del caso, en su propio contenedor y con su propia base. Toca productos, elige método de pago, confirma, y mira cómo baja el inventario. Desde el panel puedes cambiar precios y ver el historial.
Los precios, los productos y las dos semanas de ventas que vas a ver no existen. Los del negocio son marcas concretas con sus márgenes: publicar esa lista sería publicar su negocio.
Entrar a la demoSe entra con PIN, igual que en el negocio: caja 1111, administración 2222. La pantalla de PIN se conservó a propósito porque es el flujo real. La base se rehace sola todas las noches, y la instalación del negocio no comparte contenedor, red, base ni claves con esta.
- FastAPI
- SQLite
- JavaScript sin framework
- PWA
- Docker
- Caddy
La demo de esta página corre en su propio contenedor, con productos, precios y ventas inventados. El negocio no comparte con ella ni base ni claves.