diff --git a/README.md b/README.md index c1c0109..31b7c8d 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,16 @@ # Challenge ONE - Hotel Alura -[ToC] - ### 🖥️ Tecnologías Utilizadas -- Java v17 +- Java OpenJDK 17 - Eclipse - Plugin WindowBuilder - MySql - Biblioteca JCalendar - Biblioteca Dotenv -> **Note** Para este desafío, concéntrate en la parte lógica y la conexión -con la base de datos, después de completar el desafío, siéntete libre de -agregar nuevas funciones y modificar la interfaz gráfica. - - -### Proyeto base - -Github [Hotel Alura](https://github.com/alura-challenges/challenge-one-alura-hotel-latam) - -:small_orange_diamond: `src/views` Directorio con la interfaz gráfica -necesaria para el programa -:small_orange_diamond: `src/imagenes` Directorio con imágenes a usar en el -proyecto - -### Requerimientos +
Requerimientos - Sistema de autenticación de usuario para que solo usuarios autorizados accedan al sistema @@ -39,16 +23,15 @@ 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. -- Ahora te preguntarás ¿Cómo se que datos debo registrar? Para eso el líder del -proyecto puso a disposición un Diagrama de Entidad Relación que usaremos para -crear las tablas en nuestra base de Datos y que está anexado a esta tarjeta -y que también estará como una tarea en nuestro backlog. No olvides leer todas -las tarjetas. -- Periodo de tiempo de cuatro semanas para desarrollar el proyecto y por eso en -esta oportunidad se facilota la parte visual del proyecto, para centrar el -desarrollo de la lógica y funcionamiento, puedes hacer las modificaciones que -creas convenientes, y se trabaja usando el sistema ágil de desarrollo utilizando -Trello +- 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 @@ -64,12 +47,12 @@ proyecto ├── 📁 bin ├── 📁 src ├── 📁 target -├── .classpath -├── .env <---- Dotenv file -├── .gitignore -├── .project -├── pom.xml -└── README.md +├── 📄 .classpath +├── 📄 .env <---- Dotenv file +├── 📄 .gitignore +├── 📄 .project +├── 📄 pom.xml +└── 📄 README.md ``` Contenido de `.env` @@ -84,42 +67,77 @@ DBPASS=password #### Modelo entidad relación -- **`huesped`** -- **`reserva`** clave externa (***foreign key***) **idReserva** +- **Tabla `HUESPED`** +- **Tabla `RESERVA`** - Foreign key *`id_huesped`* ```mermaid erDiagram - Huesped ||--|{ Reserva : tiene - Huesped { - Id int PK "NN NB" - Nombre varchar "bla bla" - Apellido varchar "bla bla" - Fecha_Nacimiento date "1931-12-20" - Nacionalidad varchar "CL" - Telefono varchar - Id_Reserva int FK "bla bla" + HUESPED ||..o{ RESERVA : tiene + HUESPED { + id int PK "NN" + nombre varchar + apellido varchar + fecha_nacimiento date "AAAA-MM-DD" + nacionalidad varchar + telefono varchar "+00 123456789" } - Reserva { - Id int PK "NN NB" - Fecha_Entrada date "1931-12-20" - Fecha_Salida date "1931-12-20" - Valor int FK "bla bla" - Forma_Pago varchar "cheque" + RESERVA { + Id int PK "NN" + fecha_entrada date "AAAA-MM-DD" + fecha_salida date "AAAA-MM-DD" + valor int "Costo total de la reserva" + forma_pago varchar "debito, credito, efectivo, cheque" + id_huesped int FK "Huesped a quien pertenece la reserva" } ``` -### 🗔 Plugin WindowBuilder -- Explorar *Window Builder*, agregar nuevas ventanas, o cambiar el diseño -de las existentes, haz clic en el archivo **java**, luego en *Open With* -> -*Window Builder Editor* +
+ +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`; + +CREATE TABLE IF NOT EXISTS `huesped` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` varchar(20) NOT NULL, + `apellido` varchar(20) NOT NULL, + `fecha_nacimiento` date DEFAULT NULL, + `nacionalidad` varchar(20) DEFAULT NULL, + `telefono` varchar(20) 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) 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) 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 **challengeonehotelaluralatam4** en *About* -> *topics* -> -etiqueta **challengeonehotelaluralatam4** -2. Rellenar formulario de entrega con el enlace al repositorio +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: @@ -127,6 +145,6 @@ etiqueta **challengeonehotelaluralatam4** 🧡 Oracle
[](https://www.linkedin.com/company/oracle/) -💙 Alura Latam
+:blue_heart: Alura Latam
[](https://www.linkedin.com/company/alura-latam/mycompany/) diff --git a/database/creation_stmnt.sql b/database/creation_stmnt.sql new file mode 100644 index 0000000..6f6a6f6 --- /dev/null +++ b/database/creation_stmnt.sql @@ -0,0 +1,25 @@ +CREATE DATABASE IF NOT EXISTS `hotel_alura` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +USE `hotel_alura`; + +CREATE TABLE IF NOT EXISTS `huesped` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` varchar(20) NOT NULL, + `apellido` varchar(20) NOT NULL, + `fecha_nacimiento` date DEFAULT NULL, + `nacionalidad` varchar(20) DEFAULT NULL, + `telefono` varchar(20) 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) 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) 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; diff --git a/database/er_diagram.mwb b/database/er_diagram.mwb new file mode 100644 index 0000000..f232639 Binary files /dev/null and b/database/er_diagram.mwb differ diff --git a/src/cl/com/alura/hotel/views/Exito.java b/src/cl/com/alura/hotel/views/Exito.java index f0119b4..1ad70ee 100644 --- a/src/cl/com/alura/hotel/views/Exito.java +++ b/src/cl/com/alura/hotel/views/Exito.java @@ -22,7 +22,7 @@ public class Exito extends JDialog { private final JPanel contentPanel = new JPanel(); /** - * Launch the application. + * Launch application. */ public static void main(String[] args) { try { @@ -35,7 +35,7 @@ public class Exito extends JDialog { } /** - * Create the dialog. + * Create dialog. */ public Exito() { setIconImage(Toolkit.getDefaultToolkit().getImage(Exito.class.getResource("/imagenes/aH-40px.png")));