Proyecto desarrollado como Trabajo de Fin de Ciclo (TFC) del ciclo de Desarrollo de Aplicaciones Web (DAW).
Se trata de una aplicación web completa para la gestión de reservas de una peluquería, permitiendo a los clientes registrarse, consultar servicios y reservar citas online, mientras que el administrador puede gestionar todas las reservas desde un panel privado.
El objetivo principal de este proyecto es digitalizar el proceso tradicional de reservas de una peluquería, automatizando la gestión de citas y mejorando tanto la experiencia del cliente como la organización interna del negocio.
La aplicación permite:
- Consultar información sobre la peluquería
- Ver catálogo de servicios
- Registro e inicio de sesión de usuarios
- Reserva de citas online
- Gestión de disponibilidad
- Panel de administración
- Confirmación y cancelación de reservas
- Sincronización automática con Google Calendar
El proyecto está desplegado y funcionando en producción:
🔗 https://tfc-peluqueria.atwebpages.com/
Repositorio oficial:
🔗 https://github.com/migiva-dev/TFC
- PHP
- Gestión de sesiones
- Validación de formularios
- Lógica de reservas
- Integración con APIs externas
- MySQL
- phpMyAdmin
- Archivo SQL para importar la base de datos
- HTML5
- CSS3
- JavaScript Vanilla
- Google Calendar API
- JWT Authentication
- Google Service Account
- AwardSpace
- Apache
- HTTPS
.htaccess
Diseño inspirado en una estética premium:
- Negro
- Blanco
- Plateado
- Diseño minimalista
- Responsive Design
El diseño está basado en la identidad visual de DIONI Peluqueros.
- Presentación de la peluquería
- Información corporativa
- Acceso rápido a reservas
Los usuarios pueden consultar:
- Corte de pelo
- Barba
- Tratamientos
- Servicios adicionales
Los clientes pueden crear una cuenta para reservar citas.
Acceso privado para clientes registrados.
Los usuarios pueden:
- Elegir fecha
- Elegir hora
- Seleccionar servicio
- Confirmar cita
- Ver horas ocupadas en tiempo real
- Evitar fechas pasadas
- Añadir notas personalizadas
El sistema incorpora integración automática con Google Calendar API, permitiendo sincronizar las reservas con un calendario real.
- Creación automática de eventos al reservar una cita
- Eliminación automática de eventos al cancelar una reserva
- Consulta de eventos semanales
- Autenticación mediante JWT
- Uso de Google Service Account
Cliente realiza reserva
↓
Reserva guardada en MySQL
↓
Evento creado automáticamente en Google Calendar
↓
Administrador visualiza la cita
Si una reserva se cancela:
Reserva cancelada
↓
Evento eliminado automáticamente de Google Calendar
El sistema cuenta con una zona privada exclusiva para administradores.
- Ver todas las reservas
- Confirmar reservas
- Cancelar reservas
- Gestionar estados
- Consultar próximas reservas
- Ver estadísticas del sistema
- Visualizar información de clientes
TFC/
│
├── admin/
│ ├── dashboard.php # Panel principal del administrador
│ ├── gestionar.php # Gestión de reservas
│ ├── login.php # Login administrador
│ └── logout.php # Cierre de sesión administrador
│
├── assets/
│ ├── css/
│ │ └── estilo.css # Estilos principales del sistema
│ │
│ ├── img/
│ │ └── logo.png # Recursos visuales e imágenes
│ │
│ └── js/
│ └── main.js # Funcionalidades frontend
│
├── includes/
│ ├── config.php # Configuración global
│ ├── db.php # Conexión a base de datos
│ ├── header.php # Cabecera reutilizable
│ ├── footer.php # Pie reutilizable
│ ├── funciones.php # Funciones auxiliares
│ └── google-calendar.php # Integración con Google Calendar API
│
├── public/
│ ├── index.php # Página principal
│ ├── login.php # Login usuarios
│ ├── logout.php # Logout usuarios
│ ├── registro.php # Registro de usuarios
│ ├── reservar.php # Sistema de reservas
│ └── servicios.php # Catálogo de servicios
│
├── sql/
│ └── peluqueria.sql # Script de base de datos
│
├── .htaccess # Configuración del servidor Apache
│
└── README.mdUsuario entra en la web
↓
Consulta servicios
↓
Se registra / inicia sesión
↓
Selecciona servicio
↓
Selecciona fecha y hora
↓
Realiza reserva
↓
Se guarda en MySQL
↓
Se sincroniza con Google Calendar
↓
Administrador gestiona la reserva
El archivo main.js implementa:
- Bloqueo de fechas pasadas
- Confirmación antes de cancelar reservas
- Confirmación antes de confirmar reservas
- Ocultación automática de mensajes
- Menú hamburguesa responsive
- Actualización automática de horarios disponibles
El archivo estilo.css incluye:
- Adaptación a móviles
- Adaptación a tablets
- Menú responsive
- Panel administrativo responsive
- Grid adaptable
- Formularios adaptables
La base de datos almacena información sobre:
- Usuarios
- Reservas
- Servicios
- Administradores
- Horarios
- Estados de reservas
Archivo principal:
sql/peluqueria.sqlgit clone https://github.com/migiva-dev/TFC.gitEjemplo con XAMPP:
htdocs/TFCImportar:
sql/peluqueria.sqldesde phpMyAdmin.
Editar:
includes/db.phpConfigurar tus credenciales de MySQL.
http://localhost/TFC/public- Gestión de sesiones
- Restricción de acceso administrador
- Validación de formularios
- Prevención de reservas duplicadas
- Restricción de fechas pasadas
- Confirmación de acciones críticas
- Configuración segura mediante
.htaccess - Redirección HTTPS
- Pasarela de pago online
- Notificaciones por email
- Panel para empleados
- API REST
- Dashboard avanzado
- Sistema automático de recordatorios
- Migración futura a Laravel
Este proyecto fue desarrollado para aplicar conocimientos en:
- Desarrollo backend
- Bases de datos relacionales
- Frontend responsive
- APIs externas
- Seguridad web
- Despliegue real
- Arquitectura web
- Gestión de usuarios
**Miguel Gavilá **
Proyecto desarrollado como Trabajo de Fin de Ciclo (DAW)
GitHub: https://github.com/migiva-dev
Proyecto desarrollado con fines educativos y académicos.