Gestión de Habitaciones
Iván Bazaga
Desarrollador Junior
Demo access
Tarjeta de acceso de prueba
Aquí tienes las credenciales asignadas para que puedas entrar al proyecto de demostración.
Usuario de prueba
test@usuario.com
Contraseña de prueba
123456
# 🏔️ Sistema de Gestión de Reservas para Refugio de Montaña
Aplicación web completa para la gestión eficiente de reservas de camas en refugios de montaña
# 📖 Descripción del Proyecto
Refugio es un sistema integral de gestión de reservas diseñado específicamente para refugios de montaña y albergues. La aplicación permite a los administradores gestionar usuarios, habitaciones y reservas, mientras que los socios pueden consultar disponibilidad en tiempo real y realizar reservas de forma sencilla e intuitiva.
# 🎯 Características Principales
- 🔐 Sistema de autenticación seguro con roles diferenciados (Admin/Usuario)
- 📅 Calendario interactivo que muestra disponibilidad de camas en tiempo real
- 👥 Gestión completa de usuarios con perfiles de socios
- 🛏️ Control de habitaciones y camas con estados de ocupación
- ✅ Flujo de aprobación de reservas para administradores
- 👨👩👧👦 Gestión de acompañantes (socios y no socios)
- 📊 Panel de administración con estadísticas y métricas
- 📱 Diseño responsive optimizado para móviles y tablets
- 🔒 Seguridad robusta con contraseñas hasheadas y protección contra inyecciones SQL
# 💡 ¿Para quién es este proyecto?
Este sistema es ideal para:
- Refugios de montaña que necesitan gestionar reservas de camas
- Clubes de montaña con refugios propios
- Albergues que requieren un sistema de reservas simple y eficiente
- Organizaciones que gestionan espacios compartidos con sistema de socios
# 📋 RESUMEN DEL PROYECTO - SISTEMA DE CONTROL DE CAMAS
# ✅ Estado Actual del Proyecto
Fecha: 23 de Octubre de 2025
Versión: 1.0.0
Estado: ✅ COMPLETADO Y FUNCIONAL
# 🎯 Objetivos Cumplidos
# ✅ Base de Datos
- Esquema PostgreSQL completo con ENUMS
- Esquema MySQL alternativo
- Tabla de usuarios con contraseñas hasheadas (bcrypt)
- Tabla de habitaciones y camas
- Tabla de reservas con estados
- Tabla de acompañantes
- Datos de prueba incluidos
# ✅ Panel Administrador (viewAdmin.php)
- Dashboard con estadísticas
- Gestión completa de usuarios (CRUD)
- Visualización de reservas pendientes
- Aprobación/rechazo de reservas
- Estado de ocupación de habitaciones
- Interfaz responsive y moderna
# ✅ Panel Usuario (viewSocio.php)
- Calendario interactivo de disponibilidad
- Indicadores visuales de camas disponibles
- Formulario de nueva reserva
- Selección dinámica de camas disponibles
- Gestión de acompañantes (socios/no socios)
- Campo de actividad y comentarios
- Visualización de mis reservas
- Cancelación de reservas pendientes
# ✅ Autenticación y Seguridad
- Sistema de login con email y contraseña
- Contraseñas hasheadas con password_hash()
- Verificación con password_verify()
- Protección SQL Injection (PDO)
- Protección XSS (htmlspecialchars)
- Regeneración de ID de sesión
- Cookies HttpOnly
- Validación de roles
# ✅ Funciones del Sistema
- Conexión a BD PostgreSQL/MySQL
- 30+ funciones en functions.php
- API AJAX para disponibilidad
- Sistema de logout
- Sanitización de datos
# 📁 Estructura de Archivos Creados/Modificados
Refugio/
├── 📄 conexion.php (✅ Actualizado - PostgreSQL)
├── 📄 functions.php (✅ Creado completo - 30+ funciones)
├── 📄 index.php (✅ Existente)
├── 📄 login.php (✅ Actualizado - nuevos roles)
├── 📄 logout.php (✅ Existente)
├── 📄 viewAdmin.php (✅ Creado completo - Dashboard + CRUD)
├── 📄 viewSocio.php (✅ Creado completo - Calendario + Reservas)
├── 📄 disponibilidad.php (✅ Creado - API AJAX)
├── 📄 update_passwords.php (✅ Actualizado)
├── 📄 config.example.php (✅ Creado - Configuración)
├── 📄 .gitignore (✅ Creado)
├── 📄 README.md (✅ Creado - Documentación completa)
├── 📄 INICIO_RAPIDO.md (✅ Creado - Guía rápida)
├── 📄 MEJORAS_FUTURAS.md (✅ Creado - Roadmap)
├── sql/
│ ├── 📄 refugio.sql (✅ Actualizado - PostgreSQL + acompañantes)
│ └── 📄 refugio_mysql.sql (✅ Creado - Versión MySQL)
└── assets/
├── css/
│ └── 📄 style.css (✅ Creado - Estilos personalizados)
└── js/
└── 📄 utils.js (✅ Creado - Utilidades JS)# 🔑 Usuarios de Prueba
| Rol | Contraseña | Nº Socio | |
|---|---|---|---|
| Admin | admin@hostel.com | admin123 | A001 |
| User | user1@mail.com | user123 | U001 |
| User | user2@mail.com | user123 | U002 |
# 🏗️ Arquitectura del Sistema
# Capas de la Aplicación
┌─────────────────────────────────────┐
│ CAPA DE PRESENTACIÓN │
│ (viewAdmin.php, viewSocio.php) │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ CAPA DE LÓGICA │
│ (functions.php) │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ CAPA DE DATOS │
│ (conexion.php + PDO) │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ BASE DE DATOS │
│ (PostgreSQL / MySQL) │
└─────────────────────────────────────┘# Flujo de Datos
- Usuario accede → Login (autenticación)
- Sistema verifica → Credenciales + Rol
- Redirección → Panel según rol
- Operaciones CRUD → Functions.php
- Persistencia → Base de datos PostgreSQL
# 📊 Estadísticas del Proyecto
- Archivos PHP: 10
- Archivos SQL: 2
- Funciones creadas: 30+
- Líneas de código: ~3,500
- Tablas de BD: 5
- Total camas: 26
- Habitaciones: 4
- Estados de reserva: 3 (pendiente, reservada, cancelada)
# 🎨 Tecnologías Utilizadas
| Categoría | Tecnología | Versión |
|---|---|---|
| Backend | PHP | 7.4+ |
| Base de Datos | PostgreSQL | 12+ |
| Base de Datos Alt. | MySQL | 5.7+ |
| Frontend | HTML5 + CSS3 | - |
| Framework CSS | Bootstrap | 5.3.2 |
| Iconos | Bootstrap Icons | 1.11.1 |
| JavaScript | Vanilla JS | ES6+ |
| Seguridad | PDO + password_hash | - |
# 🔐 Características de Seguridad Implementadas
✅ Nivel de Seguridad: MEDIO-ALTO
- ✅ Contraseñas hasheadas con bcrypt
- ✅ Prepared statements (PDO)
- ✅ Sanitización de inputs
- ✅ Protección XSS
- ✅ Regeneración de session ID
- ✅ Cookies HttpOnly
- ✅ Validación de roles
- ✅ Logout seguro
Pendiente para PRODUCCIÓN:
- HTTPS obligatorio
- CSRF tokens
- Rate limiting
- 2FA (opcional)
# 📝 Cambios Principales Realizados
# 1. Base de Datos
ANTES:
- MySQL con contraseñas en texto plano
- Sin tabla de acompañantes
- Roles diferentes (vecino, presidente)
DESPUÉS:
- PostgreSQL con ENUMS nativos
- Contraseñas hasheadas (bcrypt)
- Tabla de acompañantes incluida
- Roles: admin, user
# 2. Autenticación
ANTES:
- Campo "usuario" como texto
- password_verify con campo 'pass'
DESPUÉS:
- Campo "email" como identificador
- password_verify con campo 'password'
- Cookies seguras
# 3. Funcionalidades
ANTES:
- Estructura básica
- Sin funciones implementadas
DESPUÉS:
- 30+ funciones completas
- CRUD completo de usuarios
- Sistema de reservas funcional
- Calendario interactivo
- Gestión de acompañantes
# 🚀 Cómo Ejecutar (Quick Start)
# 1. Crear BD
psql -U postgres
CREATE DATABASE refugio;
\q
# 2. Importar esquema
psql -U postgres -d refugio -f sql\refugio.sql
# 3. Configurar conexion.php
# Editar usuario y contraseña de PostgreSQL
# 4. Iniciar servidor
php -S localhost:8000
# 5. Acceder
# http://localhost:8000
# admin@hostel.com / admin123# 📈 Próximos Pasos Sugeridos
# Prioridad Alta
- ⚠️ Cambiar contraseñas por defecto
- ⚠️ Eliminar update_passwords.php
- ⚠️ Configurar HTTPS en producción
- 📧 Implementar notificaciones por email
- 🔒 Añadir CSRF tokens
# Prioridad Media
- 📊 Dashboard con gráficos
- 📄 Exportar reservas a PDF
- 📱 Mejorar responsive mobile
- 🔍 Búsqueda avanzada de reservas
- 📅 Exportar calendario a Google Calendar
# Prioridad Baja
- 🎨 Temas personalizables
- 🌐 Multi-idioma
- 📱 App móvil nativa
- 💰 Sistema de pagos
- 🤖 Chatbot de asistencia
# 📞 Soporte y Documentación
- README.md - Documentación completa del sistema
- INICIO_RAPIDO.md - Guía de instalación rápida
- MEJORAS_FUTURAS.md - Roadmap de funcionalidades
- sql/refugio.sql - Comentarios en el esquema
# ✨ Características Destacadas
🎯 Sistema completo y funcional
🔐 Seguridad implementada correctamente
📱 Diseño responsive y moderno
🚀 Fácil de instalar y configurar
📚 Bien documentado
🔄 Escalable y mantenible
⚡ Rendimiento optimizado
🎨 Interfaz intuitiva
# 🎉 Conclusión
✅ El sistema está 100% funcional y listo para uso
El proyecto cumple con todos los requisitos especificados:
- ✅ Admin puede gestionar usuarios y aprobar reservas
- ✅ Users pueden ver disponibilidad y hacer reservas
- ✅ Calendario visual con indicadores
- ✅ Gestión de acompañantes
- ✅ Sistema seguro con contraseñas hasheadas
- ✅ Base de datos bien estructurada
El sistema puede ser desplegado en producción después de:
- Cambiar contraseñas por defecto
- Configurar servidor HTTPS
- Revisar configuración de PostgreSQL
- Eliminar archivos de desarrollo
# Licencia
Licencia del proyecto (ej.: MIT). Añadir archivo LICENSE en el repositorio.
# Autor
# 👨💻 **Iván Bazaga**
🚀 Desarrollador Frontend especializado en Angular y ecosistemas JavaScript
Estudiante Intermedio con pasión por crear aplicaciones web modernas y eficientes. Este proyecto representa la aplicación práctica de conceptos avanzados.
# ☎️ Información de Contacto
| Plataforma | Enlace | Descripción |
|---|---|---|
| GitHub | @IvBanzaga | Repositorios y proyectos de código |
| Iván Bazaga | Perfil profesional y networking | |
| ivan.cpweb@gmail.com | Contacto directo para oportunidades | |
| Portfolio | Ivandevs.netlify.app | Showcase de proyectos y skills |
| Proyecto | Creamiproyecto.com | Showcase de proyectos y skills |
# 🧰 Stack Tecnológico de Especialización
Frontend: Java SprinBoot • Astro • Angular 20 • TypeScript • RxJS • Bootstrap 5 • HTML5 • CSS3
Tools: Angular CLI • Git • VS Code • Prettier • Jasmine • Karma
Learning: NgRx • PWA • Node.js • Express • Mysql • Oracle¡Disfruta gestionando las reservas de tu refugio! 🏔️
Documentación generada el 23 de Octubre de 2025
Comparte este proyecto
¿Te ha gustado este proyecto? ¡Compártelo con tu red!