Saltar al contenido
</>
Volver
Dominio financiero, arquitectura y productoEn desarrollo

Proyecto personal

Financial Control Center

  • Next.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • Better Auth
  • Vitest

Problema

Un saldo bancario no responde cuánto dinero se puede gastar: ignora compromisos, deuda, ahorro reservado y movimientos planificados. El producto nace para convertir esas reglas en una lectura financiera honesta.

Contexto

Proyecto personal: nació para resolver un problema mío y lo diseñé y construí desde cero. Sigue en desarrollo. El repositorio incluye una aplicación funcional con datos de demostración, documentación de arquitectura y pruebas de invariantes financieros sobre PostgreSQL real.

Objetivo

Construir un centro de control que permita entender el disponible real, registrar operaciones sin romper el historial y evolucionar el dominio de forma incremental.

Mi rol

  • Definí el producto, el lenguaje del dominio, la experiencia visual y la arquitectura full stack.
  • Modelé el dominio en Prisma (23 modelos y 17 enums), con restricciones documentadas entre base de datos y capa de negocio.
  • Implementé autenticación, persistencia, casos de uso, interfaz responsive, datos demo y pruebas automatizadas.

Arquitectura y decisiones

  • Next.js 16 con Server Components y Server Actions; PostgreSQL es la fuente de verdad y Prisma la capa de persistencia.
  • Better Auth usa el mismo User del dominio y renombra su Account para no colisionar con la cuenta financiera.
  • Las escrituras que afectan varias entidades usan transacciones; Zod valida las reglas que PostgreSQL no puede expresar.
  • 23 ADRs registran decisiones sobre dominio, seguridad, autenticación, estado, tema y pruebas.

Flujo de arquitectura

  1. 01Interfaz + formularios
  2. 02Casos de uso + Zod
  3. 03Prisma + transacciones
  4. 04PostgreSQL

Solución

  • Implementado: cuentas, movimientos, crédito y cuotas, planificación, presupuestos, ahorro, préstamos, conciliación, reglas, resumen y análisis.
  • Implementado: registro rápido, temas claro/oscuro/sistema, dataset demo determinístico y aislamiento de datos por usuario.
  • En desarrollo: despliegue público y refinamiento de los flujos completos con datos reales.
  • Planificado: ingreso de transacciones mediante lenguaje natural como una capa sobre casos de uso validados, no como escritura directa en la base.

Desafíos y trade-offs

  • Distinguir saldo, disponible, deuda, gasto, ahorro y reembolso sin duplicar fuentes de verdad.
  • Mantener historial auditable: los movimientos se anulan en vez de borrarse y los valores sensibles se derivan al leer.
  • Priorizar exactitud del dominio sobre abstracciones prematuras; no se añadió un repositorio genérico ni estado global en V1.

Vistas

Capturas del sitio en vivo

Captura de Financial Control Center: Resumen financiero — tema claro
Resumen financiero — tema claro
Captura de Financial Control Center: Resumen financiero — tema oscuro
Resumen financiero — tema oscuro
Captura de Financial Control Center: Acceso — tema claro
Acceso — tema claro
Captura de Financial Control Center: Acceso — tema oscuro
Acceso — tema oscuro

Aprendizajes

  • El modelamiento del dominio y las invariantes cambian más el producto que una pantalla aislada.
  • Probar reglas financieras contra PostgreSQL real descubre errores que un mock no representa.
  • Los ADRs hacen visible el proceso de ingeniería y permiten revisar decisiones cuando el producto evoluciona.

Resultado

Aplicación funcional en desarrollo con autenticación, dominio financiero completo, interfaz responsive y suite de pruebas. La infraestructura de producción está documentada, pero el despliegue público sigue pendiente.