Loading...

Works

TurnoYa 2026

TurnoYa

SaaS de reservas de turnos · multi-rubro

TurnoYa es un SaaS de reservas de turnos para profesionales y comercios (barberías, peluquerías, estética, salud), genérico para cualquier rubro basado en turnos. Tiene dos lados: un marketplace público donde los clientes buscan un negocio y reservan sin necesidad de registrarse, y un panel privado donde el dueño administra su negocio, servicios, horarios y turnos.

  • EstadoEn desarrollo — deploy próximamente.
  • BackendNestJS, TypeScript, Prisma 6, PostgreSQL (Neon), JWT (Passport), bcrypt, class-validator, Swagger, Jest.
  • FrontendReact 19, Vite, TypeScript, PrimeReact, React Router, Axios, Context API.
  • CódigoGitHub — monorepo API + Web

    Features

  • Marketplace público: los clientes buscan negocios por nombre o dirección y reservan sin login.
  • Reserva pública multi-paso (negocio → servicio → día → horario disponible).
  • Panel del dueño con login: gestión de negocio, servicios, editor de horarios semanales (multi-rango) y turnos.
  • Turno walk-in: el dueño agenda un cliente presencial, con contacto opcional.
  • Modo claro/oscuro persistente que respeta la preferencia del sistema.

Decisiones técnicas

  • Anti-doble-reserva en 2 capas: chequeo de disponibilidad a nivel app + índice único parcial en PostgreSQL. Si dos personas reservan el mismo turno a la vez, la base rechaza el segundo INSERT y la API responde 409.
  • Multi-tenant por propiedad: cada dueño opera únicamente sobre su negocio; la autorización se resuelve desde el token JWT, nunca desde el body.
  • Motor de disponibilidad como función pura, testeada con Jest: genera los slots del día excluyendo los turnos ocupados.
  • Modelado de dominio cuidado: plata en centavos enteros, horarios en minutos desde medianoche y timezone del negocio (Argentina).
  • NestJS
  • React 19
  • TypeScript
  • Prisma
  • PostgreSQL
  • JWT
  • PrimeReact
  • Vite
  • Jest
© 2026 Nicolás González