Turni: el cuadrante de turnos que se rellena solo, respetando descansos, pausas y contratos

App de turnos de trabajo para pequeños negocios, con la demo de un bar ficticio: el titular indica quién está y cuánta gente hace falta, y Turni prepara la semana respetando descansos, pausas y contratos, y explica lo que no puede cubrir. El personal ve sus turnos en el móvil y pide vacaciones y cambios. El cálculo se hace en el navegador. Se prueba sin cuenta.

**Turni** («turnos» en italiano) es una app de turnos de trabajo para un pequeño negocio (un bar, una farmacia, una tienda, una residencia de mayores), y aquí se prueba con **un bar que no existe**: el Caffè Clessidra, con quince empleados ficticios. El titular indica quién trabaja y cuánta gente hace falta, media hora a media hora; Turni propone la semana, el titular la ajusta y la publica, y el personal la ve en el móvil.

**Qué hace**

- **La semana generada**: primero cubre todo lo que se puede cubrir sin incumplir ninguna norma; luego reparte con equidad fines de semana y cierres, sigue las preferencias y mantiene horarios regulares. - **Las normas laborales**: las 11 horas de descanso entre dos turnos, el descanso semanal, la pausa a partir de 6 horas, la media de 48 horas, las franjas de las jornadas parciales, cada una con su artículo (decretos legislativos italianos 66/2003 y 81/2015); lo que cambia de un convenio colectivo a otro está en un perfil. A mano se corrige arrastrando, y mientras se arrastra la app dice qué se incumpliría. - **Las explicaciones**: el martes por la noche falta una persona en cocina, y Turni dice por qué, persona por persona, en italiano: «Nessuno può coprirla: Simone è in permesso dalle 14; Luca è in ferie; Sara non è disponibile il martedì sera; Paolo ha il riposo fisso il martedì…» (nadie puede cubrirla: Simone tiene permiso desde las 14:00, Luca está de vacaciones, Sara no está disponible los martes por la noche, Paolo descansa siempre los martes…). Turni solo dice que no se puede cubrir sin incumplir una norma cuando el solver lo ha demostrado. - **La app del personal**: una PWA con los propios turnos, incluso sin conexión, las solicitudes de vacaciones y los cambios con los compañeros, las notificaciones y el calendario del móvil, conectado con una dirección secreta que se puede revocar. Se entra con una invitación, sin correo ni contraseña.

**La prueba sin cuenta**: desde la página de presentación se entra en el panel como titular, o en la app como una empleada. El servidor envía una copia de los datos ficticios, su lógica funciona en el navegador y los cambios se quedan allí: nadie más los ve.

**Lo difícil** es el cálculo. HiGHS, el solver de optimización, ocupa más de 100 MB mientras trabaja, y en mi servidor Turni tiene 150 en total: por eso está compilado a WebAssembly y funciona en el navegador de quien genera la semana, dentro de un Web Worker. En mi PC demuestra en menos de dos segundos que el hueco del martes por la noche no se puede cerrar.

Vue 3 y TypeScript, Fastify y MongoDB; cada cambio pasa por 368 pruebas automáticas y llega al servidor con una GitHub Action.

Diseño, desarrollo full-stack y publicación · 2026

Vue.js, Fastify, MongoDB, HiGHS, WebAssembly

Ver el sitio

Andrea Coppetta