Job Search CLI es una herramienta profesional de línea de comandos para la búsqueda centralizada de ofertas laborales. Desarrollado bajo el paradigma de Programación Funcional, el proyecto utiliza flujos de datos inmutables y procesamiento reactivo para interactuar con la API de Arbeitnow.
- Arquitectura de Vanguardia: Configurado con Java 21 (LTS) y Gradle 8.12, optimizado para el rendimiento y preparado para la transición a Gradle 9.
- Paradigma Funcional: Uso extensivo de
Java Streams,OptionalyLambdaspara un procesamiento de datos limpio y sin efectos secundarios. - Consumo de API Declarativo: Integración con OpenFeign para una comunicación eficiente y desacoplada con servicios REST.
- CLI Robusto: Gestión avanzada de argumentos mediante JCommander, incluyendo validaciones personalizadas y ayuda dinámica.
- Filtrado Inteligente: Implementación de predicados locales para garantizar resultados precisos por ubicación (ej. Ecuador) y tipo de jornada.
| Tecnología | Propósito |
|---|---|
| Java 21 (Temurin) | Runtime de alto rendimiento y lenguaje principal. |
| Gradle 8.12 | Automatización de compilación y gestión de dependencias (Toolchains). |
| OpenFeign | Cliente HTTP declarativo para consumo de servicios externos. |
| JCommander | Motor de parseo para interfaces de línea de comandos. |
| Gson | Deserialización y manejo de estructuras de datos JSON. |
- Java 21 (Recomendado vía SDKMAN!):
sdk install java 21.0.5-tem
- Gradle 8.12 (Gestionado automáticamente por el wrapper incluido en el proyecto).
-
Clonar el repositorio:
git clone https://github.com/luiscacuango2/job-search.git cd job-search -
Construir el proyecto:
./gradlew build
Ejecuta la aplicación pasando las opciones deseadas seguidas de la palabra clave (KEYWORD):
-
Búsqueda por ubicación específica:
./gradlew run --args="--location Ecuador java" -
Trabajos remotos (Full-Time):
./gradlew run --args="--full-time --location Remote python" -
Manual de ayuda:
./gradlew run --args="--help"
| Argumento | Descripción | Requerido |
|---|---|---|
KEYWORD |
Término de búsqueda (ej. Java, Spring, React). | Sí |
--location, -l |
Filtra por ciudad o país (ej. Ecuador, Quito). | No |
--full-time |
Filtra solo empleos de jornada completa. | No |
--help |
Muestra la documentación de comandos. | No |
Se utiliza Conventional Commits para la gestión del historial:
feat:Nuevas funcionalidades.fix:Corrección de errores.refactor:Mejoras en código sin cambios funcionales.docs:Actualización de documentación técnica.
¡Las contribuciones son bienvenidas! Por favor, lee nuestro archivo CONTRIBUTING.md para conocer los detalles sobre nuestro código de conducta y el proceso para enviarnos pull requests.
. Este proyecto está bajo la Licencia MIT - mira el archivo LICENSE para más detalles.
Luis Cacuango
Desarrollado con pasión por el Clean Code y la Programación Funcional.