158 lines
4.8 KiB
Markdown
158 lines
4.8 KiB
Markdown
<p align="center"><img src="./src/imagenes/aH-150px.png" width="150"/></p>
|
|
|
|
# Challenge ONE - Hotel Alura
|
|
|
|
### 🖥️ Tecnologías Utilizadas
|
|
|
|
- Java OpenJDK 17
|
|
- Eclipse
|
|
- Plugin WindowBuilder
|
|
- MySql
|
|
- Biblioteca JCalendar
|
|
- Biblioteca Dotenv
|
|
|
|
<details><summary>Requerimientos</summary>
|
|
|
|
- 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)
|
|
|
|
</details>
|
|
|
|
## :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
|
|
}
|
|
```
|
|
|
|
<details>
|
|
|
|
<summary markdown="span">Database creation statement</summary>
|
|
|
|
[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;
|
|
```
|
|
|
|
</details>
|
|
|
|
### :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:
|
|
|
|
🧡 <strong>Oracle</strong></br>
|
|
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/oracle/)
|
|
|
|
:blue_heart: <strong>Alura Latam</strong></br>
|
|
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/alura-latam/mycompany/)
|