Skip to main content

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

ComponenteVersión mínimaNotas
Node.js18.0.0LTS recomendado. Descarga en nodejs.org
npm9.0.0Incluido con Node.js
WindowsWindows 10 (64-bit)Build genera instalador NSIS .exe
macOSmacOS 11 Big SurBuild genera imagen .dmg Universal
LinuxUbuntu 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>.
ScriptDescripción
npm run devInicia el servidor de desarrollo Vite en http://localhost:5173 con Hot Module Replacement
npm run buildGenera el build de producción del renderer React en ./dist/
npm run electron:devInicia Vite y lanza la ventana Electron en paralelo (modo desarrollo con DevTools abiertos)
npm run electron:buildCompila el renderer y genera los instaladores nativos en ./release/
npm run previewLevanta un servidor local para previsualizar el build de producción en ./dist/
npm testEjecuta la suite completa de 42 tests con Vitest (modo run, ~350 ms)
npm run test:watchEjecuta Vitest en modo watch — re-corre los tests al guardar cambios

Formatos de instalador generados por electron:build

PlataformaFormatoArquitectura
WindowsNSIS installer (.exe)x64
macOSImagen de disco (.dmg)Universal
LinuxAppImage (.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:
VariableValor en desarrolloEfecto
NODE_ENVdevelopmentActiva 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.

Build docs developers (and LLMs) love