Saltar al contenido

Mila Barber

Sistema de reserva de citas automático para Hassan, que regenta una barbería en un barrio de Pamplona

Primera pantalla de Mila Barber: el rótulo «MILA BARBER» en negro y dorado con el lema «Tu estilo, nuestra pasión», los botones «Reservar cita» y «Ver servicios y precios», y el horario con la dirección de la barbería debajo.
Mi papel
Diseño, desarrollo, modelo de contenido y despliegue
Año
2026
Estado
En producción

Web de Mila Barber, barbería del barrio de la Milagrosa (Pamplona). La parte pública es nueva y el área privada —cuentas, reserva de citas y agenda del local— rehace lo que ya existía en la aplicación anterior de la barbería.

Dos clases de datos conviven en el mismo sitio sin mezclarse: el contenido (fotos, servicios, precios y avisos) vive en Sanity y lo edita el propio barbero en /admin; las personas (cuentas y citas) viven en MongoDB y no pasan por el CMS ni se editan a mano.

El dominio anterior de la barbería sigue apuntando a la aplicación vieja: migrarlo es decisión del cliente. La portada se sirve todavía sin el montaje de vídeo.

Lo que tiene dentro

  1. Una cita es una foto del momento en que se reservó: el nombre del servicio, su precio y su duración se copian dentro del documento, así que subir el corte de 14 a 16 € no reescribe lo que se cobró la semana pasada ni descuadra la agenda de aquel jueves.

  2. Reservar ocurre dentro de una transacción: entre comprobar que el hueco está libre y escribir la cita cabe otra reserva, y el día que pasa deja a dos personas en la puerta a la misma hora.

  3. Tres papeles (cliente, staff y administrador) que se dan a mano por consola: que registrarse el primero dé el mando es un agujero clásico en cuanto la web es pública.

  4. La zona horaria la fija el arranque del servidor y no una variable de entorno, porque TZ está reservada en Vercel: en UTC, en verano la agenda se desplazaría dos horas y la barbería perdería los dos últimos huecos de la tarde.

Stack

  • Next.js 16
  • TypeScript
  • Tailwind CSS 4
  • Sanity
  • MongoDB
  • Auth.js
  • bcrypt
  • Nodemailer
  • Vercel