Este proyecto es un Conversor de Moneda que permite a los usuarios convertir cantidades de dinero entre diferentes monedas. El conversor utiliza tasas de cambio actualizadas para ofrecer conversiones precisas entre las siguientes monedas:
- ARS: Peso Argentino
- BOB: Boliviano
- BRL: Real Brasileño
- CLP: Peso Chileno
- COP: Peso Colombiano
- USD: Dólar Estadounidense
El controlador principal se encuentra en la carpeta Controller y se llama ConversorController. Este controlador maneja las solicitudes relacionadas con la conversión de monedas y proporciona las tasas de cambio necesarias para llevar a cabo las conversiones.
Funciones del ConversorController:
-
obtenerMonedas(): Este método obtiene las tasas de cambio desde una API y filtra las monedas relevantes para el conversor. Retorna un mapa con las tasas de cambio para las monedas especificadas. -
convertirMoneda(double cantidad, String origen, String destino): Este método convierte una cantidad dada de una moneda de origen a una moneda de destino, utilizando las tasas de cambio obtenidas. -
showPage(): Este método muestra la página principal del conversor.
La clase MonedaConversor se encuentra en la carpeta Conversor. Esta clase es responsable de la comunicación con la API externa para obtener las tasas de cambio actualizadas.
Funciones de MonedaConversor:
getExchangeRates(): Este método hace una solicitud HTTP a la API de tasas de cambio y analiza la respuesta JSON para devolver un mapa con las tasas de cambio de las monedas disponibles.
El archivo conversor.html, ubicado en la carpeta templates, contiene la interfaz de usuario del conversor de monedas. Utiliza Bootstrap para el diseño y la presentación, lo que facilita la creación de un diseño atractivo y responsive.
Características del HTML:
- Formulario de Conversión: Permite a los usuarios ingresar la cantidad a convertir y seleccionar las monedas de origen y destino.
- Resultado de Conversión: Muestra el resultado de la conversión en un formato amigable.
- Historial de Conversiones: Presenta un historial de conversiones recientes, permitiendo a los usuarios hacer clic en cualquier entrada para cargar esa conversión nuevamente.
Se ha utilizado Bootstrap para mejorar la apariencia de la aplicación y garantizar que sea responsive. Los estilos adicionales se han definido en el archivo HTML para personalizar ciertos elementos, como el historial de conversiones y los botones.
Este código JavaScript implementa la lógica del conversor de monedas en la interfaz de usuario. A continuación, se describen las principales funciones y su propósito.
-
Itm(id): Esta función simplifica la obtención de elementos del DOM por su ID. Toma unidcomo argumento y devuelve el elemento correspondiente utilizandodocument.getElementById(). -
create(id): Crea un nuevo elemento del DOM del tipo especificado enid, utilizandodocument.createElement().
Se utilizan tooltips de Bootstrap para mostrar información adicional cuando el usuario pasa el ratón sobre ciertos elementos. Se seleccionan todos los elementos que tienen el atributo data-bs-toggle="tooltip" y se inicializan.
agregarAlHistorial(conversion): Esta función permite agregar una conversión realizada al historial. Crea un nuevo botón que representa la conversión y lo inserta al principio de la lista de historial (#historial). Al hacer clic en un elemento del historial, se puede cargar la conversión en el formulario.
cargarMonedas(): Esta función asíncrona se encarga de obtener la lista de monedas desde el servidor mediante una solicitud a la ruta/monedas. Los códigos de las monedas se añaden como opciones en los selectores de monedas de origen y destino. En caso de error, se muestra un mensaje en la consola.
-
Se agrega un evento
submital formulario de conversión (#conversionForm). Este evento se activa cuando el usuario envía el formulario:-
Previene el comportamiento por defecto del formulario, que es recargar la página.
-
Obtiene los valores ingresados por el usuario: cantidad, moneda de origen y moneda de destino.
-
Realiza una solicitud
fetcha la ruta/convertir, enviando los parámetros de conversión. La respuesta se maneja en formato JSON. -
Muestra el resultado de la conversión en la interfaz, actualizando el elemento de resultados.
-
Actualiza el historial de conversiones, añadiendo una nueva entrada que permite a los usuarios volver a cargar la conversión en el formulario al hacer clic en ella.
-
limpiarFormulario(): Resetea el formulario de conversión a sus valores predeterminados, permitiendo al usuario empezar una nueva conversión sin tener que eliminar manualmente los valores anteriores.
- Java JDK 11 o superior
- Spring Boot
- Dependencias de Maven:
gson,spring-boot-starter-web,spring-boot-starter-thymeleaf, etc.
- Clona este repositorio en tu máquina local.
- Abre el proyecto en tu IDE preferido.
- Asegúrate de tener las dependencias necesarias instaladas.
- Ejecuta la aplicación Spring Boot.
- Abre un navegador y ve a
http://localhost:8080para acceder al conversor de monedas.
Este proyecto ha sido creado con la finalidad de realizar el desafío Challenge de Alura Latam.
