Know-Cuba-Proyect

El proyecto “Planificación de Paquetes Turísticos” modela el negocio de una agencia de viajes dedicada a ofrecer paquetes turísticos integrales que combinan alojamiento, transporte y servicios complementarios (como excursiones o actividades).

Imagen del proyecto Know-Cuba-Proyect

Technical Information

Implementation details and project architecture

La solución ofrece:

Gestión integral de reservas y paquetes turísticos. Módulos por rol de usuario, con permisos específicos (Administrador, Gerente, Diseñador de Paquetes, Dependiente).

Automatización de reportes, incluyendo contratos conciliados, temporadas hoteleras, ingresos por paquetes, entre otros.

Modelos de datos sólidos que representan contratos, proveedores, temporadas, vehículos, modalidades, etc. Interfaz visual intuitiva, desarrollada en Java Swing, con diseño centrado en la usabilidad (colores fríos, disposición clara y consistencia) y mucha innovación en su recreación.

Patrones para un mejor control del acceso a datos que permiten realizar este acceso de forma controlada segura y cómoda.

El Problema

Antes de su implementación, las agencias de viajes enfrentaban:

Procesos manuales y fragmentados para registrar y gestionar contratos con hoteles, transportistas y prestadores de servicios.

Dificultades para organizar y combinar modalidades turísticas en un mismo paquete (ej. alojamiento + transporte + excursiones).

Duplicidad y pérdida de información por ausencia de una base de datos integrada. Falta de automatización en tareas críticas como la generación de reportes o control de reservas.

La Solución

El proyecto dio lugar a una aplicación de escritorio desarrollada en Java conectada a una base de datos PostgreSQL. Capaz de solventar todos los problemas que enfrentan estas agencias de viaje.

El Impacto

Aumento de la eficiencia operativa, al automatizar tareas administrativas y de reserva.

Reducción de errores humanos, gracias a la validación y gestión centralizada de datos. Trazabilidad completa de contratos, paquetes y reservas.

Capacidad de expansión, ya que el diseño permite escalar hacia una futura aplicación web.

Mejora en la calidad del servicio al cliente, al disponer de información precisa y actualizada para ofrecer paquetes personalizados.

Aprendizajes

Identificación clara de entidades y relaciones complejas (múltiples relaciones 1-n y n-m).

Diseño de un modelo E-R completo y su transformación en modelos lógico y físico optimizados.

Diferenciación y justificación entre modelo lógico vs. físico, asegurando integridad referencial y eficiencia.

Elaboración de Diagramas Entidad-Relación, diagramas de clases UML y diagramas de interacción por roles.

Integración del diseño de base de datos con la arquitectura orientada a objetos en Java.

Construcción y prueba del script SQL completo de creación de tablas y relaciones, con claves primarias y foráneas.

Experiencia en normalización de tablas, restricciones e índices.

Comprensión de las diferencias entre el diseño lógico conceptual y su implementación física real.

Aplicación de principios de Programación Orientada a Objetos (POO).

Implementación de clases jerárquicas (herencia, abstracción) para modelar contratos, modalidades y roles.

Uso de Java Swing para construir interfaces gráficas intuitivas y consistentes.

Dividir tareas entre grupos de desarrollo (base de datos y aplicación).

Mantener comunicación y conocimiento integral entre todos los miembros. Aprender a iterar y refinar el diseño con base en problemas detectados durante el desarrollo.

Technologies Used

Java

Java

Java Swing

Java Swing

Eclipse

Eclipse

Git

Git

Github

Github

PostgreSQL

PostgreSQL

Enterprise Architec

Enterprise Architec

Draw.io

Draw.io