Está en la página 1de 10

RETO 5

En el reto 5, el equipo desarrollará completa la aplicación aplicando los conocimientos adquiridos sobre CSS, de
esta manera se complementará la parte visual de la aplicación y se alineará a los mockups propuestos.

Adicionalmente se podrá satisfacer las necesidades de la gerencia que solicita reportes con el fin de tomar decisiones
gerenciales con mayor certeza. Estos reportes consisten en:

Cantidad de reservas en un tiempo determinado.


Cantidad de reservas completadas vs canceladas.
Top de los clientes que más dinero le han dejado a la compañía
Top de los vehículos más rentados
Cantidad de Carros por año.
Historia de usuario Nro. 5.1 Título: Conteo de Reservas
COMO: Usuario
Descripción QUIERO: Ver un reporte de reservas
PARA: Saber cuántas reservas se han hecho en un intervalo de tiempo
Criterios de  La fecha de inicio debe ser anterior a la fecha final del intervalo.
aceptación  La respuesta debe ser un número correspondiente al conteo del total de reservas.

Historia de usuario Nro. 5.2 Título: Conteo de Reservas completadas vs canceladas


COMO: Usuario
QUIERO: Ver un reporte de reservas con la cantidad de completas vs la cantidad de
Descripción reservas canceladas
PARA: Realizar una comparación visual.
Criterios de  Solamente se deben contar las reservas completas y las canceladas. Reservas con otro
aceptación estado se deben ignorar.
 La respuesta deben ser dos números correspondientes a la cantidad de cada de reserva
de cada estado.

Historia de usuario Nro. 5.3 Título: Top mejores clientes


COMO: Usuario
Descripción QUIERO: Ver un reporte de clientes
PARA: Tomar los que más han rentado.
Criterios de  Se debe entregar la lista de usuarios con la cantidad reservas completas.
aceptación  Se debe mostrar los clientes que más reservas completas tienen en orden descendente.

Historia de usuario Nro. 5.4 Título: Top de Carros


COMO: Usuario
Descripción QUIERO: Ver un reporte de Carros
PARA: Conocer los carros que más se rentan.
Criterios de  Se debe entregar la lista de carros con la cantidad reservas (sin importar estado).
aceptación  Se debe mostrar los carros que más reservas tienen en orden descendente.
Instrucciones para la evaluación automática

En este caso, no se ejecutará el código directamente sino que se evaluarán los resultados obtenidos al realizar
peticiones HTTP al API construida y que actualmente debe estar desplegada en Oracle Cloud. Las peticiones que se
realizarán serán de tipo GET y POST Para realizar las pruebas, las tablas de la base datos deben estar vacías y el
valor

Para realizar la prueba, será necesario primero realizar la creación de los datos iniciales que serán consistentes con
la prueba, para ello se ejecutarán una serie de peticiones POST. Posteriormente se Realizarán las peticiones GET a
cada reporte.

Para validar los reportes, se creará 1 gama, 3 carros, 2 clientes, 4 reservas.

Entrada Cada grupo debe proveer URL (o la ip) donde se encuentra desplegada el API.
Esta entrada se denominará URL Base
Salida Corresponde a los mensajes JSON que retorna cada petición. MasterTech hará la
comparación de forma automática.

A continuación se presenta un ejemplo del proceso de evaluación.

Tipo: describe el tipo de petición HTTP


Endpoint: Base URL/enlace de acceso al servicio a evaluar
Body: JSON de entrada para la petición HTTP
Salida: JSON de salida de la petición HTTP

La Tabla 1 presenta la configuración para un posible caso de prueba:

Ejemplo de prueba: Reservas completas vs canceladas


Tipo: GET
Endpoint http://129.159.49.189/Reservation/report-status
Paso 1. Body
Salida {"completed":3,"cancelled":1}

Tabla 1. Ejemplo

En pirmer lugar MasterTech hará un cargue de información previa utilizando peticiones POST y GET para validar,
luego después de este cargue de información, MasterTech hará una petición de tipo GET para conocer el estado de
la base de datos. Todo este proceso se realiza de manera automática por MasterTech.

Recomendaciones generales

Antes de enviar la solución del reto, por favor tenga en cuenta los siguientes aspectos:

 Verifique que la aplicación esté desplegada correctamente y sea accesible a través de la URL
 Verifique que todos los endpoint funcionen. Recuerde que puede probarlos a través de PostMan
 Las tablas de la base de datos deben estar vacías y recién creadas para que el identificador generado
automáticamente en cada tabla esté en 0.
 Lo único que debe proveer a MasterTech para las pruebas es la URL de su API

Casos de prueba (ocultos)

Creación de gama
Tipo: GET
Endpoint http://129.159.49.189/Gama/all
Paso 1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Gama/save
{
Paso 2. Body
"name":"Sedan",
"description":"Vehículo ligero para transitar en la ciudad"
}
Salida
TIPO GET
Paso 3. Endpoint http://129.159.49.189/Gama/all
Body
[{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en
Salida la ciudad.","cars":[]}]

Creación de Carro 1
Tipo: GET
Endpoint http://129.159.49.189/Car/all
Paso 1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Car/save
{
"name":"Logan",
Paso 2. Body
"brand":"Renault",
"year":"2016",
"description":"Renault Logan 1.6 Privilege",
"gama":{"idGama":1}
}
Salida
TIPO GET
Endpoint http://129.159.49.189/Car/all
Paso 3.
Body
[{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault
Salida Logan 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo
ligero para transitar en la ciudad"},"messages":[],"reservations":[]}]
Creación de Carro 2
Tipo: GET
Endpoint http://129.159.49.189/Car/all
Paso 1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Car/save
{
"name":"Car 2",
Paso 2. Body
"brand":"Test",
"year":"2016",
"description":"car2 testing",
"gama":{"idGama":1}
}
Salida
TIPO GET
Endpoint http://129.159.49.189/Car/all
Body
Paso 3. [{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault
Logan 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo
ligero para transitar en la
Salida ciudad"},"messages":[],"reservations":[]},{"idCar":2,"name":"Car
2","brand":"Test","year":2016,"description":"car2
testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para
transitar en la ciudad"},"messages":[],"reservations":[]}]

Creación de Carro 3
Tipo: GET
Endpoint http://129.159.49.189/Car/all
Paso 1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Car/save
{
"name":"Car 3",
Paso 2. Body
"brand":"Test",
"year":"2016",
"description":"car3 testing",
"gama":{"idGama":1}
}
Salida
TIPO GET
Endpoint http://129.159.49.189/Car/all
Body
[{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault
Logan 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo
Paso 3. ligero para transitar en la
ciudad"},"messages":[],"reservations":[]},{"idCar":2,"name":"Car
2","brand":"Test","year":2016,"description":"car2
Salida testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para
transitar en la
ciudad"},"messages":[],"reservations":[]},{"idCar":3,"name":"Car
2","brand":"Test","year":2016,"description":"car3
testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para
transitar en la ciudad"},"messages":[],"reservations":[]}]
Creación de Cliente 1
Tipo: GET
Endpoint http://129.159.49.189/Client/all
Paso 1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Client/save
{
"name":"client1",
Paso 2. Body
"email":"c1@gmail.com",
"password":"c123",
"age":18
}
Salida
TIPO GET
Paso 3. Endpoint http://129.159.49.189/Client/all
Body
Salida [{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18,"messages":[],"reservations":[]}]

Creación de Cliente 2
Tipo: GET
Pa Endp http://129.159.49.189/Client/all
oint
so Body
1. Salid []

a
Tipo: POST
Endp http://129.159.49.189/Client/save
oint
Pa {
"name":"client2",
so Body "email":"c2@gmail.com",
"password":"c123",
2. "age":18
}
Salid
a
TIPO GET
Pa Endp http://129.159.49.189/Client/all
so oint
3. Body
Salid [{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18,"messages":[],"reservations":[]},{"idClient":2,"email":"c2@
gmail.com","password":"c123","name":"client2","age":18,"messages":[],"reservations":[]}]
a

Creación de Reserva 1
Tipo: GET
Paso
Endpoint http://129.159.49.189/Reservation/all
1. Body
Salida []

Tipo: POST
Endpoint http://129.159.49.189/Reservation/save
{
"startDate":"2020-12-20",
Paso "devolutionDate":"2020-12-20",
2. Body "client":{"idClient":1},
"car":{"idCar":1},
"status":"completed",
}}
Salida
TIPO GET
Endpoint http://129.159.49.189/Reservation/all
Paso Body
3. [{"idReservation":1,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault
Salida Logan 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null}]

Creación de Reserva 2
Tipo: GET
Endpoi http://129.159.49.189/Reservation/all
Pas
nt
o 1. Body
Salida []

Tipo: POST
Endpoi http://129.159.49.189/Reservation/save
nt
{
Pas "startDate":"2020-12-20",
"devolutionDate":"2020-12-23",
o 2. Body "status":"completed",
"client":{"idClient":1},
"car":{"idCar":1}
}
Salida
TIPO GET
Endpoi http://129.159.49.189/Reservation/all
nt
Pas Body
o 3. [{"idReservation":1,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
Salida rvation":2,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null}]

Creación de Reserva 3
Pas Tipo: GET
Endpoi http://129.159.49.189/Reservation/all
o 1. nt
Body
Salida []
Tipo: POST
Endpoi http://129.159.49.189/Reservation/save
nt
{
Pas "startDate":"2021-02-15",
"devolutionDate":"2021-02-18",
o 2. Body "status":"completed",
"client":{"idClient":1},
"car":{"idCar":1}}
}
Salida
TIPO GET
Endpoi http://129.159.49.189/Reservation/all
nt
Body
[{"idReservation":1,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
Pas 23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
o 3. ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
rvation":2,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
Salida 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
rvation":3,"startDate":"2021-02-15T00:00:00.000+00:00","devolutionDate":"2021-02-
18T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null}]

Creación de Reserva 4
Tipo: GET
Endpoi http://129.159.49.189/Reservation/all
Pas
nt
o 1. Body
Salida []

Tipo: POST
Endpoi http://129.159.49.189/Reservation/save
nt
{
Pas "startDate":"2021-05-15",
"devolutionDate":"2021-05-18",
o 2. Body "status":"cancelled",
"client":{"idClient":2},
"car":{"idCar":2}
}
Salida
TIPO GET
Endpoi http://129.159.49.189/Reservation/all
Pas nt
o 3. Body
[{"idReservation":1,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
Salida 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
rvation":2,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
rvation":3,"startDate":"2021-02-15T00:00:00.000+00:00","devolutionDate":"2021-02-
18T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault Logan
1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18},"score":null},{"idRese
rvation":4,"startDate":"2021-05-15T00:00:00.000+00:00","devolutionDate":"2021-05-
18T00:00:00.000+00:00","status":"cancelled","car":{"idCar":2,"name":"Car 2","brand":"Test","year":2016,"description":"car2
testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":2,"email":"c2@gmail.com","password":"c123","name":"client2","age":18},"score":null}]

Cantidad de reservas en un tiempo determinado


Tipo: GET
Endp http://129.159.49.189/Reservation/report-dates/2020-01-01/2020-12-31
oint
Body
[{"idReservation":1,"startDate":"2020-12-20T00:00:00.000+00:00","devolutionDate":"2020-12-
Pa 23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year
":2016,"description":"Renault Logan 1.6
so Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
1. Salid ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"cli
ent1","age":18},"score":null},{"idReservation":2,"startDate":"2020-12-
a 20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year
":2016,"description":"Renault Logan 1.6
Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"cli
ent1","age":18},"score":null}]

Reservas completas vs canceladas


Tipo: GET
Endpoint http://129.159.49.189/Reservation/report-status
Paso 1. Body
Salida {"completed":3,"cancelled":1}

Top clientes
Tip GET
o:
End http://129.159.49.189/Reservation/report-clients
poi
nt
P Bod
as y
[{"total":3,"client":{"idClient":1,"email":"c1@gmail.com","password":"c123","name":"client1","age":18
o ,"messages":[],"reservations":[{"idReservation":1,"startDate":"2020-12-
1. 20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":
Sali 2016,"description":"Renault Logan 1.6
Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
da ciudad"},"messages":[]},"score":null},{"idReservation":2,"startDate":"2020-12-
20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":
2016,"description":"Renault Logan 1.6
Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"score":null},{"idReservation":3,"startDate":"2021-02-
15T00:00:00.000+00:00","devolutionDate":"2021-02-
18T00:00:00.000+00:00","status":"completed","car":{"idCar":1,"name":"Logan","brand":"Renault","year":
2016,"description":"Renault Logan 1.6
Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"score":null}]}},{"total":1,"client":{"idClient":2,"email":"c2@gmail.com","pa
ssword":"c123","name":"client2","age":18,"messages":[],"reservations":[{"idReservation":4,"startDate"
:"2021-05-15T00:00:00.000+00:00","devolutionDate":"2021-05-
18T00:00:00.000+00:00","status":"cancelled","car":{"idCar":2,"name":"Car
2","brand":"Test","year":2016,"description":"car2
testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[]},"score":null}]}}]

Top Carros
Tipo GET
:
End http://129.159.49.189/Reservation/report-clients
poin
t
Bod
y
[{"total":3,"car":{"idCar":1,"name":"Logan","brand":"Renault","year":2016,"description":"Renault
Logan 1.6 Privilege","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar
P en la ciudad"},"messages":[],"reservations":[{"idReservation":1,"startDate":"2020-12-
as 20T00:00:00.000+00:00","devolutionDate":"2020-12-
23T00:00:00.000+00:00","status":"completed","client":{"idClient":1,"email":"c1@gmail.com","password"
o :"c123","name":"client1","age":18},"score":null},{"idReservation":2,"startDate":"2020-12-
20T00:00:00.000+00:00","devolutionDate":"2020-12-
1. 23T00:00:00.000+00:00","status":"completed","client":{"idClient":1,"email":"c1@gmail.com","password"
:"c123","name":"client1","age":18},"score":null},{"idReservation":3,"startDate":"2021-02-
Sali 15T00:00:00.000+00:00","devolutionDate":"2021-02-
da 18T00:00:00.000+00:00","status":"completed","client":{"idClient":1,"email":"c1@gmail.com","password"
:"c123","name":"client1","age":18},"score":null}]}},{"total":1,"car":{"idCar":2,"name":"Car
2","brand":"Test","year":2016,"description":"car2
testing","gama":{"idGama":1,"name":"Sedan","description":"Vehículo ligero para transitar en la
ciudad"},"messages":[],"reservations":[{"idReservation":4,"startDate":"2021-05-
15T00:00:00.000+00:00","devolutionDate":"2021-05-
18T00:00:00.000+00:00","status":"cancelled","client":{"idClient":2,"email":"c2@gmail.com","password"
:"c123","name":"client2","age":18},"score":null}]}}]

También podría gustarte