/ChallegeBackend-Hotel-Alura

El Sistema de Gestión de Reservas de Hospedaje es una aplicación desktop diseñada para simplificar y automatizar la gestión de reservas en un establecimiento de hospedaje, como un hotel o una posada.

Primary LanguageJava

Challenge ONE | Java | Back End | Hotel Alura


👨🏻‍💻 Victor A. Agudelo

🛠️Tools:

  • IntelliJ IDEA
  • PhpMyadmin

🖥️ Tecnologías Utilizadas:

  • Java 11
  • Biblioteca JCalendar
  • MySQL
  • JPA Hibernate
  • Biblioteca Password4j (Bcrypt)
  • Lombok

📌 Arquitectura

  • Modelo-Vista-Controlador (MVC)
  • Patrón de diseño Data Transfer Object (DTO)
  • Patrón de diseño Data Access Object (DAO)

📜 Descripción

El Sistema de Gestión de Reservas de Hospedaje es una aplicación desktop diseñada para simplificar y automatizar la gestión de reservas en un establecimiento de hospedaje, como un hotel o una posada. Esta herramienta proporciona una solución integral para administrar todas las actividades relacionadas con las reservas de habitaciones y huéspedes, optimizando la eficiencia operativa y mejorando la experiencia del cliente.

📖 Funcionalidades de la Aplicación :

  • Sistema de Autenticación:

    Solo el Usuario Administrador tiene los permisos para acceder a la aplicación.
  • Creación de Reservas:

    Permite la creación de reservas, verificando las fechas de entrada y salida ingresadas.
  • Cálculo de Costo:

    Calcula automáticamente el costo de la reserva en pesos colombianos (COP) en función de las fechas registradas.
  • Asociación de Huéspedes:

    Facilita la asociación de huéspedes existentes a una reserva, verificando su existencia a través de su número de cédula. En caso contrario, registra un nuevo huésped.
  • Consulta de Reservas:

    Permite consultar las reservas registradas hasta el momento utilizando filtros como las fechas de entrada y salida, así como el código de reserva.
  • Consulta de Huéspedes:

    Permite consultar los datos de huéspedes registrados a través de su número de cédula.
  • Actualización de Reservas:

    Posibilita la actualización de datos de reserva, como las fechas de entrada y salida. Además, se verifica que la fecha de entrada no sea anterior a la fecha de registro y que la fecha de salida no sea anterior a la fecha de entrada. También permite cambiar el método de pago.
  • Actualización de Datos de Huéspedes:

    Permite la actualización completa de los datos de huéspedes, con validación de edad basada en la fecha de nacimiento para asegurarse de que sean mayores de edad
  • Eliminación (Soft Delete) de la Reserva y los Huéspedes:

    Esta función habilita la realización de un "soft delete" para las reservas y los huéspedes que se encuentran en la base de datos. Esta acción permite conservar un historial exhaustivo de todas las reservas y huéspedes en la aplicación.

🗳️ Diagrama de la Base de Datos

Diseño de la BD

Inicio

Esta vista proporciona una introducción inicial a la aplicación. Al hacer clic en "Login" se activarán una serie de procesos que permitirán la creación de un usuario y el registro de las nacionalidades, siempre y cuando sea la primera vez que se ejecute la aplicación. Posteriormente, se mostrará la pantalla de inicio de sesión, que permitirá la autenticación y autorización del usuario administrador para acceder a la aplicación

inicio-app

Registro de Reserva

Esta vista permite registrar los datos esenciales para una reserva, incluyendo la fecha de entrada, la fecha de salida, el costo de la reserva y el método de pago. Se realiza una validación para asegurarse de que la fecha de entrada sea posterior a la fecha actual y que las fechas de entrada y salida estén en el orden correcto, lo que permite calcular automáticamente el costo de la reserva de manera precisa.

reserva-app

Registro del huesped

Esta interfaz proporciona la capacidad de buscar un huésped por su número de cédula en la base de datos. Si el huésped ya existe, se recupera automáticamente; en caso contrario, permite el registro de un nuevo huésped, asociándolo directamente a la reserva.

Antes de registrar un nuevo huésped, se realiza una validación que verifica la fecha de nacimiento del huésped para asegurarse de que sea mayor de edad. Además, se garantiza que todos los campos necesarios estén completos antes de proceder con el registro.

reserva-huesped-app

Consulta de Reservas y Huespedes

Esta interfaz brinda la capacidad de realizar consultas tanto para reservas como para huéspedes registrados en la aplicación. En el caso de las reservas, es posible aplicar filtros por un rango de fechas y por el código de reserva, lo que facilita la búsqueda de información específica. Para los huéspedes, se permite la consulta a través de su número de cédula, agilizando la recuperación de datos individuales.

consultar-app

Actualización de Reservas

En esta interfaz, el administrador puede obtener y actualizar información crucial, como las fechas de entrada y salida, así como el método de pago asociado a una reserva. Sin embargo, es importante tener en cuenta ciertas condiciones antes de realizar cualquier modificación. Por ejemplo, se verifica que la fecha de entrada no sea anterior a la fecha de registro original, y que la fecha de salida no sea anterior a la fecha de entrada. Esto garantiza la coherencia y la validez de los cambios realizados en las reservas.

update_reserva-app

Actualización del Huesped

En esta interfaz, el administrador tiene la capacidad de obtener y actualizar información crítica del huésped, incluyendo su fecha de nacimiento, número de cédula y otros datos relevantes. No obstante, se lleva a cabo una validación exhaustiva para asegurarse de que la fecha de nacimiento del huésped resulte en una edad mayor de edad y que ningún campo quede vacío antes de permitir cualquier modificación. Esto garantiza la integridad de los datos del huésped y cumple con los requisitos necesarios.

update_huesped-app

Eliminación de Reserva y Huesped

Esta interfaz ofrece la capacidad de realizar un "soft delete," lo que significa que se cambia el estado de la reserva y del huésped sin eliminar los datos reales de la base de datos. Esto permite mantener un historial completo de las reservas y huéspedes en la aplicación, lo que puede ser valioso para el seguimiento y el registro de actividades anteriores sin perder información crítica.

delete-app