Volver a proyectos
Completado

PeluqueriApp

App web de reserva de citas para peluquerías con interfaz responsive, carrusel de imágenes, galería fotográfica y calendario integrado

Descripción del Proyecto

Aplicación web completa para gestión de reservas de peluquerías desarrollada como Trabajo de Fin de Grado (TFG). Sistema moderno y responsive que digitaliza el proceso de citas, mejorando la experiencia del cliente y la eficiencia operativa del negocio.

Características principales

  • Sistema de reservas integrado con Calendly
  • Calendario interactivo con disponibilidad en tiempo real
  • Galería fotográfica de trabajos realizados
  • Carrusel de servicios con precios y descripciones
  • Interfaz responsive optimizada para móvil y tablet
  • Gestión de clientes con historial de citas
  • Notificaciones automáticas por email

Tecnologías utilizadas

Frontend:

  • Astro para SSG (Static Site Generation) ultrarrápido
  • React para componentes interactivos (islands architecture)
  • TypeScript para desarrollo type-safe
  • TailwindCSS para diseño responsive moderno
  • Swiper.js para carrusel fluido

Integración:

  • Calendly API para gestión de citas
  • Node.js para backend y lógica de negocio
  • Nodemailer para notificaciones automáticas
  • Vercel para hosting y deploy continuo

Diseño:

  • Mobile-first approach
  • Accesibilidad WCAG 2.1 nivel AA
  • Animaciones suaves con CSS y GSAP
  • Imágenes optimizadas con formato WebP

Funcionalidades para clientes

  • Explorar servicios con fotos, descripciones y precios
  • Ver disponibilidad en calendario interactivo
  • Reservar cita seleccionando fecha, hora y servicio
  • Recibir confirmación instantánea por email
  • Gestionar reservas (modificar o cancelar)
  • Historial de citas pasadas con recordatorio de servicios
  • Galería inspiración con trabajos del salón

Funcionalidades para peluquería

  • Dashboard administrativo con vista de citas del día/semana/mes
  • Gestión de horarios con bloqueo de franjas no disponibles
  • Base de clientes con notas y preferencias
  • Estadísticas de reservas y servicios más solicitados
  • Configuración de servicios, precios y duración
  • Recordatorios automáticos a clientes 24h antes

Diseño UI/UX

Paleta de colores:

  • Tonos cálidos y elegantes (dorado, beige, blanco)
  • Alto contraste para accesibilidad
  • Modo oscuro opcional

Componentes destacados:

  • Hero con video/imagen de fondo
  • Cards de servicios con hover effects
  • Formulario de contacto intuitivo
  • Testimonios de clientes
  • Mapa de ubicación integrado

Arquitectura técnica

  • Rendering híbrido: Static pages + dynamic islands
  • API RESTful para comunicación backend
  • Caché inteligente de disponibilidad
  • Validaciones robustas en formularios
  • Lazy loading de imágenes pesadas
  • PWA ready para instalación en móvil

Retos Técnicos Superados

1. Integración compleja con Calendly

Problema: Calendly tiene limitaciones en su API gratuita y no permite personalización total del widget de reservas.

Solución: Combiné iframe embed de Calendly (para funcionalidad de reservas) con queries a su API para mostrar disponibilidad en mi UI custom. Implementé middleware que sincroniza datos cada 5 minutos y cachea results para reducir llamadas API. Los usuarios ven calendario bonito nuestro pero reservan con Calendly por detrás.

2. Galería fotográfica de alto rendimiento

Problema: Salón de peluquería tiene +200 fotos de trabajos. Cargar todas causaba tiempo de carga de +8 segundos y consumo de 50MB de datos.

Solución: Implementé lazy loading con Intersection Observer que carga imágenes solo cuando entran en viewport. Convertí todas las fotos a WebP con Astro’s Image component (reducción 70% de peso). Usé thumbnails de baja resolución con progressive enhancement. Tiempo de carga inicial: <2 segundos, datos: 3MB.

3. Prevención de doble reserva

Problema: En tests con múltiples usuarios, detectamos race condition donde 2 personas reservaban la misma franja horaria simultáneamente.

Solución: Implementé sistema de “soft locks” con Redis que reserva temporalmente una franja por 2 minutos cuando alguien la está mirando. Si no completa reserva en ese tiempo, se libera automáticamente. Añadí retry logic que sugiere franjas alternativas si la seleccionada se ocupa mientras el usuario rellena el formulario. Doble reservas: 0 después de implementación.

4. Responsive design perfecto en móviles

Problema: 80% de usuarios acceden desde móvil. El calendario complejo de Calendly no se veía bien en pantallas pequeñas.

Solución: Creé vista de calendario completamente diferente para móvil: en lugar de grid semanal, mostré lista de días scrollable con botones de franjas horarias grandes (touch-friendly). Detección automática de orientación para ajustar layout. Redesign iterativo con 15 usuarios test hasta alcanzar SUS score de 85/100.


Resultados y validación

Métricas del TFG:

  • Nota final: 9.5/10
  • Mención especial por calidad técnica y UX
  • Implementación real en 2 peluquerías locales

Impacto en negocios:

  • Reducción 60% en llamadas telefónicas para citas
  • Incremento 35% en reservas (menos friction)
  • Satisfacción cliente: 4.8/5 estrellas
  • Tiempo gestión citas: -40%

Lighthouse Scores

  • Performance: 98/100
  • Accessibility: 96/100
  • Best Practices: 100/100
  • SEO: 100/100

Stack técnico completo

  • Development: Astro + React + TypeScript
  • Styling: TailwindCSS + custom CSS
  • Calendar: Calendly API + custom UI
  • Email: Nodemailer + templates HTML
  • Hosting: Vercel con CI/CD
  • Analytics: Google Analytics 4
  • Forms: React Hook Form + Zod validation

Este proyecto demuestra capacidad de desarrollar soluciones empresariales completas desde análisis de requisitos hasta despliegue en producción, con enfoque en UX y métricas de negocio reales.

Explorar más proyectos

Ver todos