Tercer proyecto desarrollado durante el curso de Java en HaB. El objetivo de este desafío es aplicar los contenidos dados hasta el momento durante el BOOTCAMP (Git, Java, Spring Boot, Testing, JPA + Hibernate, Spring Security) en la implementación de una API REST.
Para ello se ha llevado a cabo el desarrollo de una aplicación back end con Spring Boot que permita recibir solicitudes de reservas para los diferentes tipos de paquetes que ofrece una agencia de turismo.
Programas y herramientas necesarias para utilizar el programa
Java 17 o superior
IDE compatible con Java 17 o superior
Un gestor de bases de datos compatible con MySQL
Un contenedor de servlet como Apache Tomcat para desplegar el proyecto web
Supuestos:
La tabla de datos de hoteles se ha dividido en Hoteles y habitaciones.
Las reservas de estas se hacen a traves de las habitaciones.
La disponibilidad de las mismas se rigen por las fechas en las que tengan o no una reserva.
Es posible crear varios vuelos con las mismas caracteristicas pero se diferenciaran siempre por el codigo del mismo.
Los clientes tienen una identificacion unica.
Los administradores de la aplicacion tienen constancia tanto de la contraseña de la BBDD como de la contraseña para acceder a los endpoints protegidos
Contraseña de la BBDD
Usuario: root
Contraseña: ""
Usuario y contraseña para usar los end-points protegidos
Usuario: usuario
Contraseña: 123
- Descargar el proyecto o realizar un git clone.
- Importar el archivo .sql alojado en la carpeta BBDD dentro de \src\main\resources del proyecto al SGBD compatible con MySql deseado.
- Abrir el proyecto en el IDE deseado.
- Es posible importar un archivo con los endpoints que se encuentra dentro de \src\main\resources para usarlos en postman.
El proyecto se compone de distintos controllers que ofrecen endpoints con distintas funcionalidades segun a cual se llame.
Algunas de ellas estan abiertas a uso publico para las demas funcionalidades hay que autenticarse.
Usuario: usuario
Contraseña: 123
De las distintas rutas presentadas anteriormente las siguientes se encuentran abiertas a uso publico:
/agency/hotels
/agency/hotels/{id}
/agency/hotelsFiltered
/agency/room-booking/new
/agency/flight-booking/new
/agency/flights
/agency/flights/{id}
/agency/flightsFiltered
- Java - Lenguaje utilizado, especificamente el JDK17
- Spring Boot - Manejo de Back-End con Java
- Spring Data JPA - Acceso a la base de datos
- Spring Security - Manejo de la seguridad de la aplicación
- Junit - Creación de test
- Maven - Manejador de dependencias
- Jose Enrique Garcia Yokidev