Dashboard web optimizado para móviles que muestra información financiera personal a través de un bot de WhatsApp usando Jelou.
- Gauge Chart: Muestra el dinero disponible para gastar
- Gráfico de Barras: Compara gastos planeados vs reales por categoría
- Gráfico de Dona: Distribución porcentual de gastos
- HTML5
- CSS3 (Mobile-first design)
- JavaScript (Vanilla)
- Chart.js v4.4.1
- Vercel (Deployment)
FinancesBot/
├── index.html # Estructura principal del dashboard
├── styles.css # Estilos optimizados para móvil
├── app.js # Lógica y configuración de gráficos
├── vercel.json # Configuración de despliegue
├── package.json # Metadata del proyecto
└── README.md # Este archivo
- Clona el repositorio
- Abre
index.htmldirectamente en tu navegador, o usa un servidor local:
# Con Python 3
python -m http.server 8000
# Con Node.js (npx serve)
npx serve .- Abre http://localhost:8000 en tu navegador
# Instalar Vercel CLI
npm i -g vercel
# Desplegar
vercel- Sube el código a GitHub
- Conecta el repositorio en vercel.com
- Vercel desplegará automáticamente
- Ve a vercel.com/new
- Arrastra la carpeta del proyecto
- Listo
Para usar este dashboard en tu bot de WhatsApp con Jelou:
- Despliega en Vercel y obtén la URL (ej:
https://tu-proyecto.vercel.app) - En tu flujo de Jelou, configura un nodo con el tool "eCommerce - Product WebView"
- Ajusta el
viewTypeo usa la URL de tu dashboard
En tu código de Jelou, puedes pasar datos al webview:
// En el nodo de código de Jelou
$memory.setJson("dashboardData", {
leftToSpend: 174.36,
totalBudget: 1000,
plannedVsActual: { /* ... */ },
expensesBreakdown: { /* ... */ }
}, 3600);Luego, en el webview, puedes leer estos datos y actualizar el dashboard usando la función updateDashboardData().
Edita las variables CSS en styles.css:
:root {
--primary-color: #4F46E5;
--secondary-color: #10B981;
/* ... */
}Edita el objeto financialData en app.js:
const financialData = {
leftToSpend: 174.36,
// ...
};Reemplaza los datos mock en app.js con llamadas a tu API:
async function fetchFinancialData() {
const response = await fetch('https://tu-api.com/financial-data');
const data = await response.json();
updateDashboardData(data);
}El dashboard incluye soporte automático para modo oscuro basado en las preferencias del sistema.
- Vista móvil optimizada (max-width: 480px)
- Sin scroll horizontal
- Carga rápida (librería CDN de Chart.js)
- Touch-friendly
- Colores contrastantes para legibilidad
MIT