Equipo 11 — Repartija Martín · Rodrigo · Hernán
Dividir la cuenta sin drama.
Uno en la mesa carga los ítems del ticket —a mano o con OCR— y genera un QR. Cada comensal entra desde su celu, toca lo que pidió (o lo comparte con quien corresponda) y ve en vivo cuánto le toca pagar. Cuando todos terminaron, se cierra la mesa y listo.
Sin planilla. Sin calculadora. Sin "¿quién pidió la pizza?" por WhatsApp al otro día.
Desarrollado como MVP hackathon por Kelsus.
- Crea una mesa con codigo corto y QR para sumarse rapido
- Sincroniza participantes e items en tiempo real con Socket.IO
- Permite repartir items entre varias personas
- Recalcula subtotal, propina y total en vivo
- Soporta pago en efectivo, al host o al restaurante
- Incluye OCR en cliente para sugerir items desde una foto del ticket
- Frontend: Vite + React + TypeScript + Wouter
- Backend: Node.js + Express + Socket.IO
- UI: Tailwind + Radix UI
- OCR:
tesseract.js - Tests: Playwright
- Node.js 18+
- npm
bash scripts/setup.sh
npm run devLa app queda en http://localhost:5173 y la API en http://localhost:3001.
Vite proxya /api y /socket.io al backend.
npm run dev # frontend + backend
npm run dev:client # solo frontend
npm run dev:server # solo backend
npm run build # build de frontend
npm run preview # preview del build
npm run smoke # tests Playwright (requiere dev server corriendo)- Crear una mesa desde la pantalla principal.
- Compartir el QR o el codigo de la sesion.
- Hacer que cada participante entre con su nombre.
- Agregar items manualmente o cargar sugerencias desde el ticket.
- Marcar quien consume cada item.
- Ajustar la propina y revisar el estado de pago.
El servidor detecta una IP local y genera el QR con una URL accesible desde otros dispositivos en la misma red Wi-Fi.
Si hace falta, se puede overridear:
PUBLIC_URL=http://mi-host:5173 npm run dev
CLIENT_PORT=5174 npm run devPORT: puerto del backend. Default3001.CLIENT_PORT: puerto del frontend usado para armar la URL del QR. Default5173.PUBLIC_URL: URL publica o LAN embebida en el QR.
Hay scripts incluidos para exponer la app temporalmente:
./scripts/deploy.sh
./scripts/destroy.shclient/ frontend React
server/ API + Socket.IO
shared/ tipos compartidos entre cliente y servidor
tests/ smoke tests y casos funcionales
docs/ notas operativas
- Las sesiones viven en memoria; reiniciar el server borra el estado.
- No hay autenticacion fuerte.
- El host se identifica con un token guardado en
localStorage. - El OCR es heuristico y puede requerir correccion manual.
Repo: Kelsus/repartija