Este proyecto es un conversor de monedas desarrollado en Java que consume una API externa para obtener tasas de cambio actualizadas en tiempo real. El programa permite seleccionar una moneda base, ingresar un monto y convertirlo a diferentes monedas destino, registrando cada conversión en un historial.
El objetivo principal del proyecto es poner en práctica conceptos fundamentales de Java, como consumo de APIs, manejo de excepciones, entrada de datos por consola y programación orientada a objetos.
Selección de moneda base (ejemplo: USD, EUR, BRL).
Consumo de una API de tipo REST para obtener tasas de cambio actualizadas.
Conversión de un monto a distintas monedas destino.
Menú de opciones para elegir la moneda de conversión.
Registro de cada conversión realizada en un historial.
Visualización del historial de conversiones al finalizar la ejecución.
Manejo de errores para evitar que el programa se rompa ante entradas inválidas.
Java
API Exchangerate
Gson (para el parseo de JSON)
HttpClient (java.net.http) para las solicitudes HTTP
Scanner para la entrada de datos por consola
Consumo de APIs REST desde Java.
Parseo de respuestas JSON utilizando Gson.
Programación orientada a objetos mediante la clase Conversion.
Uso de colecciones (ArrayList) para almacenar el historial de conversiones.
Manejo de excepciones con try-catch para errores de:
Entrada de datos incorrecta (cuando el usuario ingresa texto en lugar de números).
Problemas de conexión con la API.
Errores inesperados en tiempo de ejecución.
Uso de estructuras de control como switch para la selección de opciones.
Principal Clase principal encargada de:
La interacción con el usuario.
La conexión con la API.
El flujo general del programa.
Conversion Clase modelo que representa una conversión individual, almacenando:
Moneda base.
Moneda destino.
Monto original.
Resultado de la conversión.
Es necesario añadir la librería Gson al proyecto para que el parseo del JSON funcione correctamente.
Se debe reemplazar la API KEY por una clave válida propia.
Actualmente, el programa funciona en una única sesión de conversión (mejora prevista para futuras versiones).
Implementar un bucle para permitir múltiples conversiones en una sola ejecución.
Separar la lógica del programa en diferentes clases (API, lógica de conversión, interfaz).
Permitir cambiar la moneda base sin reiniciar el programa.
Guardar el historial de conversiones en un archivo JSON.
Ampliar la lista de monedas disponibles dinámicamente desde la API.
- Anderson Collazos (MrCopixt0)
Proyecto desarrollado como parte de un challenge de Java, con mejoras adicionales orientadas al aprendizaje práctico y al fortalecimiento de fundamentos en backend.