Legacy Hair Studio
Reservás sin llamar.
Y dos turnos no se pueden pisar.
Sistema de turnos para una barbería de Rosario: reserva online en tres pasos, sin cuenta ni seña, gestión del turno desde un enlace y un panel para que el local maneje su agenda.
- Mi rol
- Proyecto propio: diseño, desarrollo y despliegue.
- Stack
- Next.js 16
- React 19
- Prisma
- PostgreSQL 18
- Docker
- Caddy
- Vitest
Decisiones que importan
La doble reserva es imposible
No lo chequea la aplicación: lo garantiza PostgreSQL con una restricción EXCLUDE USING gist. Un test dispara 10 reservas en paralelo contra la base real para probarlo.
Los avisos no se pierden
Outbox transaccional con FOR UPDATE SKIP LOCKED: el mail sale solo si el turno se guardó, y dos pasadas superpuestas no se pisan.
El calendario se mantiene al día
Cada turno genera su .ics con UID estable y SEQUENCE: si lo movés o lo cancelás, se actualiza en el calendario del cliente.