PROYECTO_03

Ya lávame

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
  • Python 3.12
  • PySide6 (Qt 6)
  • SQLite
  • python-escpos
  • pywin32
  • PyInstaller
  • Inno Setup

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.

CAPTURAS

Pantalla de cobro: selección de trabajador, tipo de vehículo y servicios extra, con el resumen de pago y el estado de la impresora
Cobro de un servicio
Pantalla de corte del día con total recaudado, coches lavados y detalle de servicios
Corte del día
Pantalla de administración con precios por vehículo, trabajadores, seguridad y configuración
Administración

01 01