Saltar al contenido
sreynosolabs
Volver a proyectos

Producto propio · finanzas personales

FinanzasApp

Finanzas personales en varias monedas, con deudas en cuotas y presupuestos que avisan antes de pasarse.

Es una app privada: te la muestro en una videollamada.

¿En qué se fue el dinero?

Cuota ¿3 de 12?

45.90

Supermercado

?

Pago en otra moneda

120.00

¿Presupuesto del mes?

—

Antes
Dashboard de FinanzasApp en tema oscuro con datos de ejemplo: avance de metas de ahorro, dos deudas en cuotas con su barra de progreso y tres gráficos: gasto por categoría (circular), ingresos frente a gastos de los últimos seis meses (barras) y evolución mensual del año (área).Después
Antes:
Dinero que se iba sin registro, en varias monedas.
Después:
Cada gasto, cuota y presupuesto en un solo lugar.

El problema

Sin ningún registro, el dinero se iba sin saber en qué. No había forma de ver cuánto faltaba pagar de una deuda en cuotas ni si el mes iba dentro del presupuesto.

Y no todos llevan sus cuentas en soles: hacía falta manejar varias monedas desde el principio.

La solución

Una app web donde cada persona crea su cuenta y elige su moneda: soles, dólares o riyales. Registra gastos e ingresos, y los que se repiten (sueldo, alquiler, suscripciones) se registran una sola vez y aparecen solos cuando llega su fecha.

Las deudas en cuotas muestran su calendario: pagas una cuota o haces un abono adelantado y la app recalcula lo que falta. Los presupuestos por categoría avisan cuando estás lejos del límite, cerca o ya lo agotaste, y cada mes se descarga un reporte en PDF.

El resultado

Es un producto propio en uso, con usuarios reales, incluidos usuarios fuera del Perú que llevan sus cuentas en otra moneda.

Gastos, ingresos, ahorro, deudas y presupuestos quedan en un solo lugar, con un dashboard que muestra en qué se va el dinero mes a mes.

En pantalla

Under the hoodDetalles técnicos

Stack

  • .NET 10 + ASP.NET Core
  • EF Core 10 + PostgreSQL
  • React 19 + TypeScript
  • TanStack Query y Zustand
  • QuestPDF
  • Docker
  • Recurrencias que se generan cuando vencen, con un BackgroundService, para que el historial y los presupuestos no se llenen de movimientos futuros.
  • Deudas con abonos parciales: el abono cuenta para la cuota en curso, las siguientes se ajustan y cada pago queda también como gasto.
  • Sesión con tokens de vida corta: JWT breve, refresh token que rota en cada uso y se guarda solo como hash, y lista de revocación al cerrar sesión.
  • API endurecida: límite de peticiones por IP, bloqueo temporal tras varios intentos fallidos y mensajes que no revelan si un correo existe.
  • Reporte PDF generado en el servidor y multimoneda por usuario.

¿Tu negocio necesita algo así?

Hablemos de tu proyecto
Siguiente proyectoShelah Torreblanca