ivanDev
Gestión de Habitaciones

Gestión de Habitaciones

Iván Bazaga

Iván Bazaga

Desarrollador Junior

php mysql html

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

Usa estas credenciales solo para pruebas o demostraciones del proyecto.

# 🏔️ 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 Email 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

  1. Usuario accede → Login (autenticación)
  2. Sistema verifica → Credenciales + Rol
  3. Redirección → Panel según rol
  4. Operaciones CRUD → Functions.php
  5. 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

  1. ✅ Contraseñas hasheadas con bcrypt
  2. ✅ Prepared statements (PDO)
  3. ✅ Sanitización de inputs
  4. ✅ Protección XSS
  5. ✅ Regeneración de session ID
  6. ✅ Cookies HttpOnly
  7. ✅ Validación de roles
  8. ✅ 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

  1. ⚠️ Cambiar contraseñas por defecto
  2. ⚠️ Eliminar update_passwords.php
  3. ⚠️ Configurar HTTPS en producción
  4. 📧 Implementar notificaciones por email
  5. 🔒 Añadir CSRF tokens

# Prioridad Media

  1. 📊 Dashboard con gráficos
  2. 📄 Exportar reservas a PDF
  3. 📱 Mejorar responsive mobile
  4. 🔍 Búsqueda avanzada de reservas
  5. 📅 Exportar calendario a Google Calendar

# Prioridad Baja

  1. 🎨 Temas personalizables
  2. 🌐 Multi-idioma
  3. 📱 App móvil nativa
  4. 💰 Sistema de pagos
  5. 🤖 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:

  1. Cambiar contraseñas por defecto
  2. Configurar servidor HTTPS
  3. Revisar configuración de PostgreSQL
  4. 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
LinkedIn Iván Bazaga Perfil profesional y networking
Email 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