Cleany — Tech Deep Dive
Plataforma SaaS Multi-Tenant para Negocios de Limpieza
Stack Tecnológico
Arquitectura
Flujo de Datos
- 1
El admin gestiona clientes, trabajadores y servicios a través del dashboard React SPA
- 2
El SPA React se comunica con la API REST Fastify via Axios con autenticación JWT
- 3
Las rutas Fastify validan peticiones con schemas JSON y delegan a la capa de servicios
- 4
Prisma ORM consulta PostgreSQL con aislamiento de tenant en cada operación
- 5
El motor de programación recurrente auto-genera órdenes de trabajo basadas en patrones configurables
- 6
Los trabajadores reciben trabajos via PWA offline-first con caché IndexedDB y cola de sincronización
- 7
Los webhooks de Stripe procesan suscripciones SaaS y confirmaciones de pago de clientes
- 8
Resend y Twilio envían notificaciones fire-and-forget para facturas y alertas de trabajos
Patrones de Código
Aislamiento Multi-Tenant
Cada consulta API filtra por tenant_id extraído del JWT. El middleware de Prisma aplica aislamiento a nivel de fila, y los serializadores de respuesta eliminan campos sensibles — asegurando cero fuga de datos entre cuentas de negocio.
Motor de Sincronización Offline-First
Los Service Workers cachean datos de trabajos con TTL de 24 horas y límite de 50 elementos. Una cola de escritura IndexedDB captura mutaciones offline, reintentando con backoff exponencial (3 intentos) cuando regresa la conectividad via el evento online.
Autenticación QR + PIN para Trabajadores
Los trabajadores escanean un token QR único que los identifica, luego establecen un PIN en el primer inicio de sesión. La rotación de refresh tokens con detección de reuso previene secuestro de sesión, y el bloqueo de cuenta se activa después de 5 intentos fallidos.
Métricas del Sistema
Próxima Evolución
El siguiente hito se enfoca en funciones de comprobación de trabajo: captura de evidencia fotográfica (fotos antes/después por trabajo), verificación de ubicación GPS para confirmar que los trabajadores están en sitio, y notificaciones push para que los trabajadores reciban alertas de trabajos en tiempo real sin sondear la app.
Un portal para clientes permitirá a los clientes finales ver su horario de limpieza, aceptar cotizaciones, solicitar reprogramaciones y pagar facturas — cerrando el ciclo entre negocios de limpieza y sus clientes.
La plataforma también añadirá un embudo de captura de leads en la página de aterrizaje con seguimiento analítico, convirtiendo el sitio de marketing de informativo a generador de ingresos.
¿Quieres resultados similares para tu proyecto?