Cuadro de Mando Financiero
Dashboard operativo de tesorería y deuda para sociedades inmobiliarias, desarrollado para Teseo&Co.
Dashboard operativo de tesorería y deuda para sociedades inmobiliarias, desarrollado para Teseo&Co. Da visibilidad diaria de liquidez, financiación y rentabilidad por promoción sin depender de la contabilidad oficial, que sigue en la asesoría externa. El sistema sincroniza los movimientos bancarios cada día, concilia automáticamente los pagos de préstamos contra los cargos reales y clasifica cada movimiento con la promoción inmobiliaria a la que corresponde.
Arquitectura
Monorepo con tres servicios independientes que se despliegan juntos vía Docker Compose:
- Dashboard web: aplicación Next.js (App Router) que actúa también como BFF. Las rutas API validan el contexto de la sociedad antes de reenviar cualquier petición al backend. Una sola pantalla con paneles laterales de detalle —sin navegación entre páginas— pensada para consulta rápida en el día a día.
- API / motor financiero: servicio NestJS que concentra la lógica de negocio: amortización de préstamos, conciliación bancaria, previsión de caja, clasificación de movimientos y cálculo de rentabilidad por inmueble.
- Worker: proceso Node + BullMQ que ejecuta en segundo plano la ingesta bancaria (Open Banking / PSD2) y el resto de tareas programadas. Siempre por cron, nunca disparadas por el usuario.
Características
- Sincronización bancaria automática: ingesta diaria de movimientos vía Open Banking, sin intervención manual.
- Motor de conciliación: cruza cada cuota de préstamo vencida contra los movimientos reales de la cuenta que la paga —con tolerancia de fechas e importes y detección de pagos fraccionados— y genera alertas cuando un cargo esperado no aparece.
- Clasificación de movimientos por promoción: reglas deterministas primero; cuando no bastan, un fallback con IA (Claude) sugiere la promoción, pero nunca se aplica solo: siempre requiere confirmación humana explícita.
- Previsión de caja a 30/60/90 días: proyecta el saldo futuro con la deuda programada y las previsiones manuales, y detecta el día exacto en que la caja prevista cruzaría a negativo.
- Rentabilidad por promoción con drill-down: ingresos, costes reales (incluido el precio de compra) y margen por inmueble, con el detalle de cada movimiento que compone la cifra.
- Distinción cuenta corriente / póliza de crédito: la caja disponible nunca mezcla saldo real con capacidad de endeudamiento.
- Aislamiento total de datos por sociedad: arquitectura multi-tenant desde el origen (cada sociedad con su propia base de datos), aunque el MVP opera sobre una sola.
- Sin borrado físico de datos financieros: los cambios de estado se modelan como registros nuevos, nunca como UPDATE destructivo, para mantener trazabilidad completa de auditoría.
Tecnologías Utilizadas
Frontend (monorepo pnpm + Turborepo)
- Next.js (App Router) y React
- TypeScript
- TailwindCSS
Backend
- NestJS
- Prisma ORM sobre PostgreSQL (Supabase), tipos NUMERIC para todos los importes
- Auth.js con MFA
Worker / Jobs
- Node.js + BullMQ sobre Redis
- Open Banking (PSD2) para la ingesta bancaria automatizada
Infraestructura
- Docker y Docker Compose, desplegado con Dokploy
- CI/CD con GitHub Actions (typecheck + tests en cada push, deploy automático en
main)
¿Trabajamos juntos?
Estoy siempre abierto a nuevas colaboraciones y proyectos desafiantes.