# 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](#modelo-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](https://trello.com/b/qMCaaWg4/g5-challenge-hotel)
## :construction: Proyecto ### :bar_chart: Base de Datos Archivo `.env` con credenciales para conexión con base de datos, en raíz del proyecto ```txt 📂 . ├── 📁 .git ├── 📁 .settings ├── 📁 bin ├── 📁 src ├── 📁 target ├── 📄 .classpath ├── 📄 .env <---- Dotenv file ├── 📄 .gitignore ├── 📄 .project ├── 📄 pom.xml └── 📄 README.md ``` Contenido de `.env` ```conf # 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`* ```mermaid 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](./database/creation_stmnt.sql) ```sql 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; ```
### :mailbox_with_mail: Entrega 1. Utilizar topico **challengeonehotelaluralatam5** en *About* -> *topics* -> etiqueta **challengeonehotelaluralatam4** ¿5? 2. Completar el formulario de entrega con el enlace al repositorio -> [Link formulario](https://lp.alura.com.br/alura-latam-entrega-challenge-one-esp-back-end) 3. ¡Añadir enlace y/o video del proyecto en Linkedin! Etiqueta a `#Oracle` y `#AluraLatam` :checkered_flag: 🧡 Oracle
[](https://www.linkedin.com/company/oracle/) :blue_heart: Alura Latam
[](https://www.linkedin.com/company/alura-latam/mycompany/)