https://github.com/asjordi/exchange-rate-mx-usd
Exchange rate mx-usd
https://github.com/asjordi/exchange-rate-mx-usd
api banxico exchange-rates java java21 mexico-datos
Last synced: about 1 month ago
JSON representation
Exchange rate mx-usd
- Host: GitHub
- URL: https://github.com/asjordi/exchange-rate-mx-usd
- Owner: ASJordi
- License: mit
- Created: 2025-01-05T00:29:12.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-03-16T20:09:14.000Z (about 2 months ago)
- Last Synced: 2025-03-16T21:25:46.877Z (about 2 months ago)
- Topics: api, banxico, exchange-rates, java, java21, mexico-datos
- Language: Java
- Homepage:
- Size: 5.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## About :computer:
Aplicación de consola que permite consultar el tipo de cambio por día del Peso Mexicano (MXN) en relación con el Dólar Estadounidense (USD) usando la API de [banxico.org.mx](https://www.banxico.org.mx/SieAPIRest/service/v1/), almacenar la información en un archivo con formato JSON y generar un gráfico con la evolución del tipo de cambio a lo largo del tiempo.
La aplicación guarda los datos históricos en un archivo JSON de acuerdo a los registros de la propia API y se actualiza de manera automática cada día mediante el uso de GitHub Actions y un cron job.
## Características :sparkles:
- Realizar y procesar peticiones a una API.
- Convertir la respuesta de la API a un objeto Java.
- Actualizar un archivo JSON con la información obtenida.
- Generar un gráfico con la evolución del tipo de cambio.
- Convertir un objeto Java a un archivo JSON.
- Automatizar la actualización del archivo JSON mediante GitHub Actions.## Clases :books:
- `Paquete model`: Contiene las clases que representan los datos obtenidos de la API.
- `FileUtils`: Clase con métodos estáticos para leer y escribir en archivos de texto.
- `RequestManager`: Clase encargada de realizar la petición a la API y procesar la respuesta.
- `DataMapper`: Clase encargada de mapear los datos obtenidos de la API a un objeto Java, y viceversa.
- `BmxDataProcessor`: Clase encargada de procesar los datos obtenidos de la API y actualizar el archivo JSON.
- `LoggerConfig`: Clase con métodos estáticos para configurar el logger de la aplicación.
- `TimeSeriesChart`: Clase encargada de generar un gráfico en formato `.svg` con la evolución del tipo de cambio.
- `Main`: Clase principal que ejecuta la aplicación.## Tecnologías :gear:
- Java 21
- GitHub Actions
- Maven
- Lombok
- Jackson Databind
- JFreeChart
- Java Logging## Instalación :floppy_disk:
1. Clonar el repositorio.
2. Abrir el proyecto en un IDE.
3. Instalar las dependencias necesarias.
4. Definir la variable de entorno `API_TOKEN_BMX` con el valor de tu token de [banxico.org.mx](https://www.banxico.org.mx/SieAPIRest/service/v1/token).
5. Ejecutar el programa.## License :page_facing_up:
Distribuido bajo la licencia MIT. Consulte `LICENSE` para obtener más información.
## Contacto :email:
Jordi Ayala - [@ASJordi](https://x.com/ASJordi)
Link del proyecto: [https://github.com/ASJordi/exchange-rate-mx-usd](https://github.com/ASJordi/exchange-rate-mx-usd)