Yokidev / GarciaSantiagoJoseEnrique_pruebatec4

Proyecto para la prueba técnica nº4 del modulo de Spring Boot del curso Java de HaB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Aplicación de Gestión de Reservas

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.

Pre-requisitos 📋

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

Instalación 🔧

  • 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.

Estructura de la BBDD 💿

Captura de pantalla 2024-02-22 003325

Funcionalidades del proyecto 🔨

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

Client Controller

client-controller

Flight Booking Controller

flight-booking-controller

Flight Controller

flight-controller

Hotel Controller

hotel-controller

Room Booking Controller

room-booking-controller

Room Controller

room-controller

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

Construido con 🛠️

Autor ✒️

About

Proyecto para la prueba técnica nº4 del modulo de Spring Boot del curso Java de HaB


Languages

Language:Java 100.0%