Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Davidmallega/Gastos-App/llms.txt
Use this file to discover all available pages before exploring further.
Esta página cubre los requisitos de sistema, el proceso completo de instalación desde el código fuente y todos los scripts disponibles para desarrollo, testing y generación de instaladores. GastosApp no requiere ningún servicio externo: una vez instaladas las dependencias npm, la aplicación funciona completamente offline en Windows, macOS y Linux.
Requisitos del sistema
| Componente | Versión mínima | Notas |
|---|
| Node.js | 18.0.0 | LTS recomendado. Descarga en nodejs.org |
| npm | 9.0.0 | Incluido con Node.js |
| Windows | Windows 10 (64-bit) | Build genera instalador NSIS .exe |
| macOS | macOS 11 Big Sur | Build genera imagen .dmg Universal |
| Linux | Ubuntu 20.04+ | Build genera .AppImage x64 |
GastosApp utiliza Electron 42.3, que internamente empaqueta su propio runtime de Chromium y Node.js. No es necesario instalar nada más allá de Node.js y npm para ejecutar la aplicación en modo desarrollo.
Clonar el repositorio e instalar dependencias
Clona el repositorio y ejecuta npm install para descargar todas las dependencias declaradas en package.json:
git clone https://github.com/Davidmallega/Gastos-App.git
cd Gastos-App
npm install
El comando npm install descarga Electron, React 19, Vite 8, Tailwind CSS 4, Recharts, PapaParse, date-fns, Vitest y el resto de dependencias de desarrollo. No se requiere ningún archivo .env ni configuración adicional para levantar el entorno de desarrollo.
Scripts disponibles
Todos los scripts se ejecutan desde la raíz del repositorio con npm run <script>.
| Script | Descripción |
|---|
npm run dev | Inicia el servidor de desarrollo Vite en http://localhost:5173 con Hot Module Replacement |
npm run build | Genera el build de producción del renderer React en ./dist/ |
npm run electron:dev | Inicia Vite y lanza la ventana Electron en paralelo (modo desarrollo con DevTools abiertos) |
npm run electron:build | Compila el renderer y genera los instaladores nativos en ./release/ |
npm run preview | Levanta un servidor local para previsualizar el build de producción en ./dist/ |
npm test | Ejecuta la suite completa de 42 tests con Vitest (modo run, ~350 ms) |
npm run test:watch | Ejecuta Vitest en modo watch — re-corre los tests al guardar cambios |
| Plataforma | Formato | Arquitectura |
|---|
| Windows | NSIS installer (.exe) | x64 |
| macOS | Imagen de disco (.dmg) | Universal |
| Linux | AppImage (.AppImage) | x64 |
El instalador Windows está configurado en español (es_ES) y permite al usuario elegir la carpeta de instalación.
Variables de entorno
GastosApp usa una sola variable de entorno relevante para el proceso Electron:
| Variable | Valor en desarrollo | Efecto |
|---|
NODE_ENV | development | Activa la carga desde http://localhost:5173 y abre las DevTools de Chromium automáticamente |
Esta variable no necesitas configurarla manualmente: el script electron:dev la inyecta con cross-env al lanzar Electron:
"electron:dev": "concurrently \"npm run dev\" \"wait-on http://localhost:5173 && cross-env NODE_ENV=development electron .\""
En producción (electron:build), NODE_ENV no se establece como development, por lo que Electron carga el build desde dist/index.html y las DevTools permanecen cerradas.
Estructura de archivos clave
Gastos-App/
├── electron/
│ ├── main.js # Proceso principal Electron (ESM): BrowserWindow, IPC, menú
│ └── preload.cjs # Bridge contextBridge (CommonJS): expone window.electronAPI
├── src/
│ ├── pages/ # 12 módulos de la aplicación (Dashboard, Facturas, GastosCaja…)
│ ├── components/
│ │ ├── layout/ # Sidebar colapsable con navegación de 12 secciones
│ │ └── ui/ # Componentes reutilizables: Card, Modal, Table, Badge, Btn…
│ ├── store/
│ │ └── useStore.js # Estado global singleton + persistencia localStorage + migraciones
│ ├── utils/
│ │ ├── format.js # formatCLP, formatDate, calcTotals, getPendienteHealth
│ │ ├── compromisos.js # getCompromisoStatus, getStatusMeta, getDueDateLabel
│ │ └── sounds.js # playPaymentSound (Web Audio API)
│ ├── App.jsx # Router de páginas + barra de título + gestión de tema
│ └── main.jsx # Punto de entrada React
├── tests/
│ ├── format.test.js # 22 tests: formatCLP, formatDate, calcTotals, getPendienteHealth…
│ └── compromisos.test.js # 20 tests: getCompromisoStatus — todos los estados y frecuencias
├── documentacion/
│ ├── sdlc/ # Documentación SDLC completa en 10 fases (IEEE 830 adaptado)
│ └── datos_prueba_3meses.json # Dataset de demostración (~39 documentos, abr–jun 2026)
├── vite.config.js # Configuración Vite: plugin React, Tailwind, puerto 5173, outDir dist
└── package.json # Dependencias, scripts y configuración electron-builder
GastosApp no usa base de datos externa. Los datos se almacenan en localStorage del proceso Electron (límite ~5 MB). Para conjuntos de datos grandes, se recomienda hacer backups frecuentes usando la sección Respaldo de la aplicación.