Este proyecto es una aplicación basada en Spring Boot que expone una API para obtener información de precios.
Una vez desplegado, los elementos estarán disponibles en la siguiente URL:
http://localhost:8080/price
La estructura del proyecto sigue la arquitectura estándar de Spring Boot:
starwars-application/
│── src/
│ ├── main/
│ │ ├── java/com/example/starwars/
│ │ ├── resources/
│── pom.xml
│── docker-compose.yml
│── README.md
│── images
para ello, se ha hecho una configuración local en docker, se ha creado el token correspondiente en el apartado mySpace Security, y se ha ejecutado el comando:
mvn clean verify sonar:sonar
-Dsonar.projectKey=starwars
-Dsonar.host.url=http://localhost:9000
-Dsonar.login=squ_61086db1b2b81ffa2c55c1c14a663356420f4bd2
## ⚙️ Tecnologías Utilizadas
- **Java 17**
- **Spring Boot 3.x**
- **Spring Data JPA**
- **H2 Database (en memoria para pruebas)**
- **JUnit 5 & Mockito**
- **Maven**
- **Docker & Docker Compose**
- **Lombok**
- **JaCoCo** (para cobertura de código)
- **SonarQube CLOUD** (para análisis de calidad)
## 🔧 Paso 1: Configuración del Proyecto
### 1. Clonar o Descomprimir el Proyecto
Si has descargado el proyecto en un archivo ZIP, descomprímelo. Si estás usando Git, clona el repositorio:
```bash
git clone https://github.com/Fuejaime/BCNC---TEST.git
cd starwars-applicationSi deseas ejecutar la aplicación en un contenedor Docker, sigue estos pasos:
docker-compose builddocker-compose upSi prefieres ejecutar la aplicación sin Docker, sigue estos pasos:
mvn clean compilemvn clean installmvn spring-boot:runO ejecuta la clase principal directamente:
java -jar target/starwars-application.jarPuedes probar la API con Postman o cURL.
Importa la colección de Postman proporcionada y ejecuta la solicitud correspondiente.
curl --location 'http://localhost:8080/price?productId=35455&brandId=1&applicationDate=2020-06-15T21%3A00%3A00' \
--data ''| Parámetro | Tipo | Descripción |
|---|---|---|
productId |
Número | ID del producto |
brandId |
Número | ID de la marca |
applicationDate |
String (ISO-8601) | Fecha de aplicación en formato yyyy-MM-dd'T'HH:mm:ss |
✔ Arquitectura Hexagonal (Separación de capas y sin acoplamientos).
✔ Principios SOLID y Clean Code.
✔ Adicion Jacoco Report.
✔ Respuestas con códigos HTTP específicos.
✔ Estrategia de commits con convenciones estándar.
Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.