🚧 Estado del Proyecto: En desarrollo activo (WIP). Enfocado en arquitectura escalable, optimización de ocupación y patrones de diseño modernos.
Este proyecto es una solución integral para la gestión y reserva de turnos, diseñada bajo una arquitectura desacoplada (Headless). El sistema ofrece una experiencia de usuario nativa mediante una PWA, respaldada por una API robusta que no solo gestiona datos, sino que optimiza el tiempo del negocio.
El núcleo del sistema utiliza un algoritmo de disponibilidad personalizado ("Edge Filling Strategy") que maximiza la ocupación del salón y elimina los "tiempos muertos" mediante estrategias de compactación de agenda, ofreciendo turnos de manera inteligente en función de los huecos existentes.
AbstractApiService) con inyección de JWT.El proyecto implementa una Arquitectura de "Tres Reinos" diseñada para maximizar la conversión de clientes y separar responsabilidades:
/): Landing page optimizada para SEO (SSG). Su objetivo es la carga instantánea para captar tráfico orgánico./app): El producto central. Una PWA (Progressive Web App) que ofrece una experiencia nativa instalable, sin la fricción de las App Stores./admin): Panel de gestión administrativa robusto y seguro (CSR protegido).El sistema distingue estrictamente entre el acceso al sistema y el recurso operativo:
User: Maneja credenciales, roles (ROLE_USER, ROLE_EMPLOYEE, ROLE_ADMIN) y seguridad.Employee: Representa al profesional. Contiene horarios laborales (WorkSchedule), especialidades y biografía.A diferencia de los calendarios tradicionales, este sistema utiliza un algoritmo de compactación de agenda:
Para evitar doble reserva por parte del cliente:
# Clonar el repositorio
git clone https://github.com/HernandezDev/beauty-salon
cd beauty-salon
# Backend Setup
cd backend
composer install
cp .env.example .env
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
# php bin/console doctrine:fixtures:load # (datos de prueba WIP)
# Iniciar el servidor de desarrollo
symfony server:start
# Frontend Setup
cd ../frontend
npm install
# generar la inteface de API Platform
npm run generate-api
# Iniciar la PWA en modo desarrollo
npm run dev
# Acceder a la PWA en http://localhost:5173
Service, Employee, WorkSchedule, Booking).zenstruck/foundry (Generación de escenarios de prueba con horarios reales).make:user y configuración de JWT (login_check).BookingProcessor con validaciones de concurrencia./api/my-schedule para la vista operativa del empleado.Aprovechar el motor de bordes para ofrecer servicios adicionales inmediatamente después de una reserva confirmada:
Desarrollado por Hernandez Rivas Josué - 2025