Tercer Desafío Alura ONE - Hotel Alura
Go to file
2023-09-03 16:06:35 -03:00
database Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00
src Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00
target init Challenge Hotel Alura proyecto base 2023-08-18 11:39:27 -04:00
.gitignore Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00
createdb.sh Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00
pom.xml Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00
README.md Encrypt passwords, Controller+DAO & db bash script 2023-09-03 16:06:35 -03:00

Challenge ONE - Hotel Alura

🖥️ Tecnologías Utilizadas

  • Java OpenJDK 17
  • Eclipse
  • Plugin WindowBuilder
  • MySql
  • Biblioteca JCalendar
  • Biblioteca Dotenv
Requerimientos
  • Sistema de autenticación de usuario para que solo usuarios autorizados accedan al sistema
  • Permitir crear, editar y eliminar una reserva para los clientes
  • Buscar en la base de datos toda la informacion tanto de clientes como reservas
  • Registrar, editar y eliminar datos de huéspedes
  • Calcular el valor de la reserva en base a la cantidad de de días de hospedaje y al valor diario. Asignar en la moneda local de tu país; p.e. una reserva de 3 dias con valor diario de $20, serian $60, todo esto deberá ser hecho automaticamente y mostrado al usuario antes de guardar la reserva
  • Base de datos para almacenar todos los datos pedidos anteriormente.
  • Diagrama de Entidad Relación para creación de tablas en la base de Datos
  • Periodo de tiempo de cuatro semanas para desarrollar el proyecto y por ello se facilita la parte visual del proyecto, para centrar el desarrollo de la lógica y funcionamiento, puedes hacer las modificaciones que creas convenientes. Se trabaja usando el sistema ágil de desarrollo utilizando Trello

🚧 Proyecto

📊 Base de Datos

Archivo .env con credenciales para conexión con base de datos, en raíz del proyecto

📂 .
├── 📁 .git
├── 📁 .settings
├── 📁 bin
├── 📁 src
├── 📁 target
├── 📄 .classpath
├── 📄 .env         <---- Dotenv file
├── 📄 .gitignore
├── 📄 .project
├── 📄 pom.xml
└── 📄 README.md

Contenido de .env

# Database credentials
DBADDR=address
DBNAME=database
DBUSER=user
DBPASS=password
PEPPER=random-string

Modelo entidad relación

  • Tabla HUESPED
  • Tabla RESERVA - Foreign key id_huesped
erDiagram
    HUESPED ||..o{ RESERVA : tiene
    HUESPED {
        id int PK
        usuario varchar UK
        nombre varchar
        varchar apellido
        fecha_nacimiento date "AAAA-MM-DD"
        nacionalidad varchar
        telefono varchar
        password varchar
    }
    RESERVA {
        id int PK
        fecha_entrada date "AAAA-MM-DD"
        fecha_salida date "AAAA-MM-DD"
        valor double
        forma_pago varchar "Débito, Crédito, Efectivo"
        id_huesped int FK
    }
Database creation statement

SQL script

CREATE DATABASE IF NOT EXISTS `hotel_alura`
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

USE `hotel_alura`;

DELETE FROM `hotel_alura`.`huesped`;
DROP TABLE IF EXISTS `hotel_alura`.`reserva`;
DROP TABLE IF EXISTS `hotel_alura`.`huesped`;

CREATE TABLE IF NOT EXISTS `huesped` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `usuario` varchar(20) NOT NULL UNIQUE,
  `nombre` varchar(20) NOT NULL,
  `apellido` varchar(20) NOT NULL,
  `fecha_nacimiento` date DEFAULT '1000-01-01',
  `nacionalidad` varchar(20) DEFAULT 'chilena',
  `telefono` varchar(20) NOT NULL,
  `password` varchar(60) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;

CREATE TABLE IF NOT EXISTS `reserva` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `fecha_entrada` date NOT NULL,
  `fecha_salida` date NOT NULL,
  `valor` double NOT NULL,
  `forma_pago` varchar(20) NOT NULL,
  `id_huesped` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id_huesped_idx` (`id_huesped`),
  CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`)
  REFERENCES `huesped` (`id`)
  ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;

📬 Entrega

  1. Utilizar topico challengeonehotelaluralatam5 en About -> topics -> etiqueta challengeonehotelaluralatam4 ¿5?
  2. Completar el formulario de entrega con el enlace al repositorio -> Link formulario
  3. ¡Añadir enlace y/o video del proyecto en Linkedin! Etiqueta a #Oracle y #AluraLatam 🏁

🧡 Oracle

💙 Alura Latam