Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SaaS para digitalizar la gestión operativa de laboratorios de mecánica dental — de la carga de un trabajo a su entrega, todo en un solo lugar.

🔗 Demo en vivo: labs.cinlodev.com 📌 Estado: en producción, con primer cliente en fase de testing. En expansión para incorporar a odontólogos como segundo segmento de usuarios.


📚 Documentation


El problema

Los laboratorios de mecánica dental suelen gestionar sus trabajos (órdenes, pacientes, entregas) en planillas sueltas o cuadernos, sin trazabilidad ni forma clara de compartir el estado de un trabajo con el odontólogo que lo pidió. CinloLabs centraliza esa operación en un panel único.

Mi rol

Diseñé y desarrollé la plataforma de punta a punta: producto, arquitectura, frontend y backend.

Stack técnico

  • Frontend: Next.js, React, Tailwind CSS (100% Responsive / Mobile-First)
  • Backend / datos: Supabase (Postgres, Auth, Row Level Security)
  • Arquitectura: Feature-Driven Architecture (FDA)
  • Experiencia Multi-Dispositivo: Optimizado para operatoria móvil en laboratorio y consultorio dental

Decisiones de arquitectura

El proyecto sigue una arquitectura modular con separación estricta de dominios, validada automáticamente en CI (check-boundaries):

  • platform/ — todo lo exclusivo del super-admin (analytics, auditoría, gestión de tenants, suscripciones).
  • tenant/ — el dashboard de cada laboratorio cliente.
  • products/ — módulos verticales de negocio (ej. dental-lab), aislados del resto.
  • core/ — primitivas, UI compartida "dumb" y utilidades genéricas, sin lógica de negocio.

Regla de oro, enforced por CI: código de tenant nunca puede importar de platform ni viceversa — cada dominio solo se comunica a través de contratos o de core. Si alguien rompe esa regla, el pipeline falla.

Dentro de cada feature, la lógica respeta el principio de responsabilidad única en 3 capas (controlador delgado → servicio de negocio → repositorio), lo que permitió migrar la capa de datos de almacenamiento en memoria a Supabase sin tocar API ni UI.

Otras piezas de la arquitectura:

  • RBAC (control de acceso basado en roles) y logs de auditoría sobre acciones críticas.
  • Abstracción del proveedor de facturación (billing provider interface, con implementación mock intercambiable).
  • Tests de aislamiento multi-tenant (tenant-isolation) para garantizar que un laboratorio nunca vea datos de otro.
  • Row Level Security en Supabase como segunda capa de aislamiento a nivel de base de datos.
  • Decisiones de arquitectura documentadas como ADRs (Architecture Decision Records).
  • Prevención de hydration mismatches en Next.js (SSR vs CSR), hidratando estado del cliente estrictamente dentro de useEffect.
  • Landing pages públicas por laboratorio: cada tenant tiene su propio sitio de presentación (portfolio de trabajos), con contenido 100% personalizable y una capa de theming sobre 4 plantillas visuales disponibles.

Screenshots

Panel del laboratorio (Admin)

Gestión de ordenes desde el panel del laboratorio

Portal de odontólogos

Gestion de ordenes desde portal de odontologos

Superadmin

Gestion de Laboratorios

Landing pública por laboratorio

Plantilla01

Vistas Móviles (100% Responsive)

Vistas Móviles y Responsive de CinloLabs


📫 ¿Preguntas sobre el proyecto? cinlodev@gmail.com · portfolio.cinlodev.com

About

SaaS para la gestión operativa de laboratorios de mecánica dental. Administra trabajos, clientes, odontólogos, entregas, facturación, suscripciones y flujos de producción con una arquitectura multi-tenant basada en Next.js, Supabase y TypeScript.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors