Saltearse al contenido

Arquitectura

Tablets (PWA, React + Vite)
│ HTTPS + WebSocket (red local)
▼
Equipo on-prem ── Django 6 + django-ninja (API HTTP)
(NUC) ── channels (tiempo real entre tablets)
── celery-beat (pruebas nocturnas contra Toteat)
── toteat-cli (librería) ── sesión de servicio
│ HTTPS
▼
Toteat (api.toteat.com, backend-long-tasks-*.run.app) = fuente de verdad
▲
│ plano de gestión
Cloud ── despliegues al equipo, monitoreo, Sentry, identidad
  • Frontend: una SPA en React + Vite (PWA) instalada en las 4 tablets. Habla con el equipo por HTTP (/api) y WebSocket (/ws), mismo origen vía Traefik.
  • Backend: Django con django-ninja para el API HTTP y Channels para el tiempo real, de modo que un cambio en una tablet aparece en las otras en segundos.
  • toteat-cli: una librería de Python (en su propio repo) que envuelve el API interno de Toteat. El backend la usa directo y mantiene una sola sesión de servicio para todo el equipo.
  • Toteat: la fuente de verdad. Nunca guardamos lo que es de Toteat (menú, pedidos, datos fiscales); nuestra base de datos solo tiene operadores, roles y la auditoría.

El porqué de todo esto está en Decisiones del stack.