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ónCloud ── despliegues al equipo, monitoreo, Sentry, identidadLas capas
Sección titulada «Las capas»- 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.