Este proyecto es un orquestador desarrollado en Java utilizando el framework Spring Boot. Se encarga de orquestar llamadas a otros servicios mediante WebClient y Kafka, y se gestiona con Maven para la administración de dependencias y la construcción del proyecto.
- Java 17: El lenguaje principal utilizado para el desarrollo del proyecto.
- Spring Boot: Framework para la creación de aplicaciones basadas en Spring que simplifica la configuración y el desarrollo de aplicaciones nuevas.
- Spring WebFlux: Utilizado para construir aplicaciones reactivas y no bloqueantes.
- Spring Data MongoDB Reactive: Proporciona soporte para trabajar con MongoDB de manera reactiva.
- Spring Kafka: Utilizado para la integración con Apache Kafka.
- Maven: Herramienta de gestión de proyectos y comprensión utilizada para la construcción del proyecto, la gestión de dependencias y la documentación del proyecto.
- Lombok: Utilizado para reducir el código boilerplate mediante anotaciones.
- MapStruct: Utilizado para la generación automática de mapeos entre objetos.
- OWASP Encoder: Utilizado para la codificación segura de datos.
- Validation API: Proporciona anotaciones para la validación de datos.
- Spring Boot Starter Test: Proporciona soporte para pruebas unitarias y de integración.
- Reactor Test: Utilizado para pruebas reactivas.
- MockWebServer: Utilizado para pruebas de servidores HTTP simulados.
- JaCoCo: Utilizado para la cobertura de código.
El proyecto sigue una estructura estándar de Spring Boot con Maven y está organizado utilizando la arquitectura hexagonal (puertos y adaptadores):
src/
└── main/
├── java/
│ └── com/
│ └── entrevistador/
│ └── orquestador/
│ ├── application/ # Capa de aplicación
│ │ ├── service/ # Servicios de aplicación
│ │ └── usecases/ # Casos de usos de aplicación
│ ├── dominio/ # Capa de dominio
│ │ ├── excepciones/ # Excepciones de dominio
│ │ ├── model/ # Modelos de dominio
│ │ ├── port/ # (puertos)
│ │ └── service/ # Servicios de dominio
│ └── infrastructure/ # Capa de infraestructura
│ ├── adapter/ # Adaptadores (implementaciones de puertos)
│ ├── beanconfiguration/ # Configuraciones de Spring
│ ├── properties/ # Propiedades de la aplicación
│ └── rest/ # Enpoints REST HTTP
└── resources/
└── application.properties
- Java 17 o superior
- Maven 3.6.3 o superior
- Docker (para ejecutar MongoDB en un contenedor)
- Clona el repositorio:
git clone https://github.com/EntrevistadorInteligente/si-orchestrator.git
- Navega al directorio del proyecto:
cd si-orchestrator
- Instala las dependencias:
mvn clean install
Para ejecutar el proyecto, utilice el siguiente comando de Maven:
mvn spring-boot:run
Para compilar el proyecto, utilice el siguiente comando de Maven:
mvn clean install
Para desarrollo en entorno local el perfil por defecto es "local" o también se puede aputar a un perfil especifico desde el application.properties en 'spring.profiles.active', reemplazando el valor por el perfil especifico "local", "dev", " prod". También se debe ejecutar el siguiente docker-compose "docker-compose-local.yml"
docker compose up -d
- Clonar el repositorio
- Crea una nueva rama desde la tarea con el nombre (feature/itemIdQuery|hotfix/itemIdQuery).
- Realiza tus cambios y haz commit (git commit -m 'Agrega nueva funcionalidad').
- Sube tus cambios (git push origin feature/itemIdQuery).
- Abre un Pull Request.
\© 2024 Entrevistador Inteligente.
Este proyecto es de código abierto y se distribuye bajo la licencia GNU AFFERO GENERAL PUBLIC. Para más detalles,
consulte el archivo LICENSE
en el repositorio.