Aplicación web académica para convertir monedas con una interfaz clara, responsive y orientada a buenas prácticas profesionales de desarrollo frontend con Vue 3.
El proyecto está construido con Vue 3, Vite, Pinia y Vue Router. La arquitectura separa componentes visuales, estado global, lógica reusable y servicios de conversión para facilitar mantenimiento, escalabilidad y una futura integración con una API real de tipos de cambio.
- Características clave
- Arquitectura y stack
- Comenzar
- Variables de entorno
- Scripts disponibles
- Estructura del proyecto
- Calidad y buenas prácticas
- Despliegue en Netlify
- Mejoras futuras
- Licencia
- Conversor de monedas: formulario para ingresar monto, seleccionar moneda de origen y destino, e interpretar el resultado.
- Estado global con Pinia: administración centralizada de monto, monedas, tasas, resultado, historial, carga y errores.
- Lógica desacoplada: cálculos y tasas ubicados en
src/services/exchangeService.js, listos para reemplazarse por una API real. - Composable dedicado:
useCurrencyConverterencapsula la lógica del flujo principal y evita sobrecargar las vistas. - Historial de conversiones: registro de conversiones recientes durante la sesión.
- Rutas informativas: páginas de proyecto, ayuda, privacidad y términos.
- Diseño responsive: experiencia adaptada para móvil, tablet y escritorio.
- Preparado para Netlify: incluye
_redirectspara soportar rutas internas con Vue Router history mode.
| Capa | Tecnologías | Descripción |
|---|---|---|
| Framework frontend | Vue 3, Composition API | Componentes declarativos y lógica reactiva. |
| Build tool | Vite | Desarrollo rápido y build optimizada para producción. |
| Estado global | Pinia | Store centralizado para datos del conversor. |
| Rutas | Vue Router | Navegación entre inicio, proyecto, ayuda, privacidad y términos. |
| Estilos | CSS moderno | Variables CSS, responsive design y sistema visual personalizado. |
| Calidad | ESLint, Prettier | Reglas de formato y validación estática del código. |
| Hosting objetivo | Netlify | Despliegue estático con build npm run build y salida dist. |
- Node.js 20 LTS o superior recomendado.
- npm 10 o superior.
- Git instalado si vas a clonar el repositorio.
# 1. Clona el repositorio
git clone https://github.com/EzerZuniga/conversor-monedas-vue.git
cd conversor-monedas-vue
# 2. Instala dependencias
npm install
# 3. Levanta el servidor de desarrollo
npm run devLa aplicación queda disponible por defecto en:
http://localhost:5173
Actualmente el proyecto no requiere variables de entorno obligatorias para ejecutarse o desplegarse.
La aplicación usa tasas de cambio locales de respaldo dentro de src/services/exchangeService.js. Si en una siguiente versión se conecta una API externa, se recomienda usar variables con prefijo VITE_, por ejemplo:
| Variable | Uso |
|---|---|
VITE_EXCHANGE_API_URL |
URL base del proveedor de tipos de cambio. |
VITE_EXCHANGE_API_KEY |
Clave pública o token del proveedor, si aplica. |
| Script | Descripción |
|---|---|
npm run dev |
Inicia Vite en modo desarrollo. |
npm run build |
Genera la build optimizada de producción en dist/. |
npm run preview |
Sirve localmente la build generada. |
npm run lint |
Ejecuta ESLint y aplica correcciones automáticas. |
npm run format |
Formatea archivos dentro de src/ con Prettier. |
conversor-monedas-vue/
├── public/
│ ├── _redirects # Soporte SPA para Netlify
│ ├── icons/ # Favicons e iconos PWA
│ ├── images/ # Logo e imagen principal
│ ├── manifest.webmanifest # Configuración básica PWA
│ └── robots.txt
├── src/
│ ├── assets/
│ │ └── css/main.css # Sistema visual y responsive design
│ ├── components/ # Header, footer, formulario, historial y UI base
│ ├── composables/ # Lógica reusable del convertidor
│ ├── router/ # Definición de rutas públicas
│ ├── services/ # Tasas, monedas soportadas y cálculos
│ ├── stores/ # Estado global con Pinia
│ ├── views/ # Vistas principales e informativas
│ ├── App.vue # Layout principal
│ └── main.js # Bootstrap de Vue
├── index.html
├── package.json
└── vite.config.js
Antes de enviar cambios o desplegar una nueva versión, ejecuta:
npm run lint
npm run buildBuenas prácticas aplicadas:
- Separación entre componentes, vistas, estado, composables y servicios.
- Uso de nombres descriptivos para componentes, acciones y datos del dominio.
- Validación básica del monto antes de ejecutar la conversión.
- Manejo de estado de carga y mensajes de error.
- Rutas con carga diferida para reducir el JavaScript inicial.
- Metadatos básicos, manifest, favicons y configuración SPA para Netlify.
- Enlaces secundarios para ayuda, privacidad y términos.
- Conectar una API real de tipos de cambio.
- Persistir historial y monedas favoritas en
localStorage. - Agregar conversión múltiple hacia varias monedas.
- Mostrar tasas populares en una sección tipo dashboard.
- Añadir pruebas unitarias para cálculos y validaciones.
- Mejorar accesibilidad con pruebas de teclado y lectores de pantalla.
Distribuido bajo licencia MIT. Revisa el archivo LICENSE para más detalles.
Desarrollado como proyecto académico de Desarrollo Frontend con Vue 3, aplicando una estructura modular, mantenible y preparada para evolución profesional.