web
Frontend SPA de HomeAccounting construido con React 18, TypeScript y Vite. Se encarga exclusivamente de la interfaz de usuario, autenticación y consumo de la API del backend para gestionar finanzas personales en entornos autoalojados.
Ficha actualizada 25 sept 2026, 5:49 · upstream 25 sept 2026, 5:41 · release sin release detectada
Qué es web
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Este repositorio contiene el cliente web de la plataforma HomeAccounting, diseñado como una aplicación de una sola página (SPA) que se comunica con el servicio backend a través de HTTP. La arquitectura sigue un enfoque orientado a características, donde las páginas dependen de módulos de funcionalidad, los cuales utilizan componentes y librerías compartidas. El proyecto utiliza React 18 con TypeScript para tipado estricto y Vite como herramienta de construcción y desarrollo.
La aplicación incluye autenticación completa mediante credenciales (email/contraseña) y flujos OAuth (Google, GitHub, Microsoft), gestionando el estado de sesión localmente de forma segura. La interfaz utiliza shadcn/ui con Tailwind CSS para garantizar una consistencia visual y accesibilidad. El código está organizado en carpetas modulares (`src/api`, `src/auth`, `src/features`) que facilitan el mantenimiento y la extensión funcional sin importaraciones inversas.
El proyecto prioriza la calidad del software mediante un ecosistema de pruebas robusto. Se emplea Vitest con MSW para mocks de servidor en pruebas unitarias y Playwright para pruebas end-to-end (E2E). La configuración de desarrollo y producción está optimizada, incluyendo scripts de automatización vía `just` y soporte nativo para entornos Nix o Node.js estándar. El despliegue se realiza mediante una imagen Docker multi-etapa que empaqueta el frontend compilado para servirlo con Caddy.
- Gestión de cuentas bancarias, efectivo y activos mediante formularios validados con Zod
- Registro y visualización de transacciones financieras con paneles interactivos
- Configuración de parámetros globales como divisas, diccionarios y configuración bancaria
- Autenticación segura con OAuth o credenciales locales para acceso al panel financiero
- Auditoría de cambios mediante endpoint `/app/info` que expone hash del commit
- Despliegue autoalojado en infraestructura propia sin necesidad de servicios externos
- Arquitectura modular con tipado estricto en TypeScript y DTOs sincronizados con el backend Haskell
- UI consistente y accesible basada en shadcn/ui, Radix UI y Tailwind CSS
- Sistema de pruebas completo con Vitest (MSW) para unitarios y Playwright para E2E
- Despliegue simplificado mediante Docker multi-etapa y configuración Caddy estática
- Gestión de estado de autenticación unificada en AuthProvider sincronizando localStorage y React state
- Scripts de automatización con `just` para tareas comunes como build, linting y despliegue
- Dependencia obligatoria del backend HomeAccounting; no funciona como aplicación standalone
- Requiere versión específica de MSW (~2.13.3) para evitar incompatibilidades con happy-dom en pruebas
- La ruta base `/app` es obligatoria tanto en Vite como en el router y Caddy
- Necesita configuración manual de variables de entorno `VITE_API_BASE_URL` antes del despliegue
- El frontend no incluye lógica de persistencia de datos; todo se delega al backend
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Desplegar la imagen Docker compilada en un servidor web estático como Caddy. Asegurar que el backend esté activo y accesible en `VITE_API_BASE_URL`. Configurar Caddy con fallback a `/index.html` para rutas SPA. Inyectar `APP_COMMIT_HASH` en build args o vía `.env` para trazabilidad. Verificar CORS en el backend si se despliega en dominio distinto.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.