Amonet Tattoo Studio
Landing para un estudio de tatuajes de Medellín y un sistema de gestión de citas con una API en .NET: clientes, artistas, camillas y citas, con control de disponibilidad y auditoría de cada acción.
- Estado
- Por publicar
- Tipo
- Cliente
- Desde
- agosto de 2025
- Mi rol
- Desarrollo integral: landing, API, base de datos e interfaz de gestión.
- Stack
- Next.jsReactTypeScriptTailwind CSS.NET 9C#DapperFluentValidationSQL Server
Problemas y cómo los resolví
- 01
ProblemaDos citas no pueden ocupar la misma camilla al mismo tiempo.
SoluciónAntes de crear una cita, una consulta SQL detecta cualquier cruce de horarios en esa camilla y descarta las citas canceladas o terminadas. Si hay conflicto, la cita no se crea.
- 02
ProblemaEn un estudio, cada cambio en una cita debe poder rastrearse: quién, cuándo y qué cambió.
SoluciónCada acción (crear, iniciar, cancelar o terminar una cita) guarda un registro de auditoría con la fecha y un resumen en JSON con el cliente, el artista y el estado anterior y el nuevo.
- 03
ProblemaCuando lecturas y escrituras comparten los mismos servicios, el código se vuelve difícil de mantener a medida que crece.
SoluciónArquitectura por capas con CQRS: cada operación es un comando o una consulta con su propio manejador, y los datos se validan con FluentValidation antes de llegar a la base de datos.
- 04
ProblemaEl personal necesita encontrar a un cliente con el dato que tenga a mano y sin crear registros duplicados.
SoluciónBúsqueda por nombre, cédula, correo o teléfono. La cédula es única en la base de datos y los nombres se normalizan automáticamente al guardarlos.
- 05
ProblemaLa landing debía transmitir la identidad oscura y artística del estudio sin perder velocidad de carga.
SoluciónPaleta y tipografía propias, una animación de entrada con puertas que se abren y un script con Sharp que genera la imagen principal en varios tamaños WebP.
Qué está construido
- Landing completa: servicios, estilos, artistas, galería, preguntas frecuentes, reservas y contacto.
- API REST para clientes, artistas, camillas, citas y auditoría.
- Base de datos en SQL Server con relaciones entre tablas y cédula única.
- Interfaz web para registrar clientes y gestionar el ciclo de cada cita.
Qué sigue en desarrollo
- Publicación de la landing, que está en su fase final.
- Validar también la disponibilidad del artista, no solo la de la camilla.
- Reglas explícitas de transición entre estados, por ejemplo, impedir que se termine una cita cancelada.
- Conectar la landing con el sistema para recibir reservas en línea.
- Acceso con usuario para el personal y despliegue del backend.

