PROYECTO_03
Ya lávame — Punto de venta
Punto de venta táctil en modo kiosko para un autolavado, en producción: cobro de servicios, tickets en impresora térmica, apertura de cajón, corte de caja, control de deudores y administración de precios y trabajadores.
- TIPO
- Escritorio · Punto de venta
- ESTADO
- EN PRODUCCIÓN
- CAPTURAS
- 3
YaLavame_Setup_1.3.0.exe Windows · no requiere Python
CONTEXTO
Sistema real en producción, hecho a la medida de un autolavado: sustituye el cobro manual con libreta por un flujo digital completo, desde que llega el cliente hasta que se imprime el ticket y se abre la caja. Diseñado para que cualquier empleado, sin conocimientos técnicos, lo use con el dedo en una pantalla táctil, sin teclado ni ratón.
OPERACIÓN DIARIA
- Cobro por tipo de vehículo (sedán, SUV, camioneta, moto) con catálogo de precios editable y servicios extra: cera, teflón, restaurador.
- Se registra qué trabajador atendió cada servicio, con gestión de altas y bajas desde la propia app.
- Control de deudores: registro de deudas, abonos e historial de pagos por cliente.
- Corte del día con total recaudado, coches lavados y detalle de cada servicio para el arqueo de caja.
- Configuración en el primer arranque: pide el nombre del negocio y la contraseña de administrador que elija el dueño.
INTERFAZ TÁCTIL
- Modo kiosko: arranca a pantalla completa, con teclado numérico y alfanumérico propios en pantalla y tarjetas de selección grandes.
- Escala de interfaz automática según la resolución, con ajuste manual para monitores de 13" o pantallas grandes.
- Tema claro consistente: se ve igual aunque Windows esté en modo oscuro, sin textos invisibles.
- Iconografía vectorial en SVG, nítida en cualquier resolución, y hoja de estilos Qt (QSS) centralizada.
- Indicador del estado de la impresora y el cajón en la pantalla de cobro: verde si responde, rojo si no hay impresora, para que el cajero sepa por qué no imprimió.
IMPRESIÓN Y HARDWARE
- Ticket construido con comandos ESC/POS a bajo nivel: bytes crudos para negrita, doble alto y ancho, centrado y corte de papel, más el logo rasterizado como imagen.
- Apertura del cajón de dinero por hardware con la secuencia drawer kick (ESC p).
- Impresora configurable desde la app: spooler de Windows, puerto serie (COM), red (IP), USB directo o archivo de diagnóstico, con papel de 58 u 80 mm.
- Botones de impresión de prueba y de probar conexión antes de dejar la terminal en el mostrador.
ARQUITECTURA Y DISTRIBUCIÓN
- Base de datos local SQLite: sin servidor, sin internet y sin configuración; el código está separado por responsabilidad (datos, componentes de interfaz, pantallas, servicio de impresión, escalado).
- Rutas robustas en desarrollo y en producción: se resuelven contra la raíz del proyecto o junto al .exe cuando corre empaquetado (sys.frozen), así que funciona desde cualquier carpeta.
- Migración transparente del historial previo de JSON a SQLite en el primer arranque.
- Empaquetado como .exe autónomo con PyInstaller e instalador de Windows con Inno Setup, que crea accesos directos y arranque automático opcional para el modo kiosko.
- El instalador guarda la base de datos en C:\ProgramData\YaLavame\data, una ubicación escribible fuera de Archivos de Programa.
- El núcleo es multiplataforma: la interfaz Qt y SQLite corren igual en Windows y Linux; solo cambia el backend de impresión.