Volver a proyectos
Cobranzas
App privada para vender en cuotas: cronogramas, cobros en pesos sobre deuda en dólares y recibos en PDF.

Datos rápidos
- Rol: análisis, diseño del cálculo, desarrollo y despliegue.
- Cliente: una tienda de productos importados que vende en cuotas.
- Estado: en prueba. Se desplegó el 08-11-2026 y falta la validación del cliente.
- Stack: Next.js, React, Supabase (PostgreSQL), PWA y Docker.
No muestro la aplicación porque tiene datos financieros reales del cliente. Por eso la captura es solo la pantalla de ingreso.
El problema
El cliente vende en cuotas y necesita saber en todo momento cuánto debe cada persona, qué cuota vence, quién se atrasó y cuánto corresponde cobrar. Con deuda en dólares y cobros en pesos, cada pago obliga a hacer cuentas con la cotización del día, y un error se paga caro.
Cómo lo encaré
- Primero las reglas, después el código. Escribí un documento de especificación con las reglas comerciales acordadas: cómo se calculan los intereses, qué pasa con un pago parcial, cuándo hay mora y cómo se perdona.
- Un solo administrador con inicio de sesión. Es una herramienta interna, no un sistema para público.
- Lo que no estaba definido no lo improvisé. Los adelantos parciales y el calendario de la mora tenían puntos abiertos, y los dejé marcados como pendientes en la especificación antes de programarlos.
Las reglas acordadas, con un ejemplo mío:
- Financiación: interés simple mensual sobre el precio. Con USD 1.000, 5 % mensual y 3 cuotas, el interés total es USD 100, el total financiado USD 1.100 y las cuotas USD 366,67, USD 366,67 y USD 366,66 (la última absorbe el redondeo).
- Cobros en pesos: el pago se convierte a dólares con la cotización que se cargó. Con ARS 100.000 a 1.600 por dólar son USD 62,50, que cuentan como pago parcial y no cancelan la cuota entera.
- Mora: 10 días de tolerancia, configurable por cliente. Después se suma un mes completo de interés simple, sin interés sobre interés, y se puede perdonar dejando constancia.
Qué construí
- Clientes, ventas, cuotas, pagos y vencimientos, con la cotización usada guardada en cada pago.
- Panel con total pendiente, cobrado del mes, próximos vencimientos y morosos, con colores por estado.
- Recibos en PDF y avisos de vencimiento por WhatsApp con el mensaje ya armado.
- Funciona como app en el celular (PWA).
- Protección contra intentos repetidos de ingreso.
- Pruebas automáticas del cálculo, porque es la parte donde un error cuesta plata.
Resultados
| Qué | Dato |
|---|---|
| Memoria de la aplicación | Unos 54 MB, medidos el 08-11-2026 |
| Estado | Desplegada; falta la prueba del cliente |
| Cálculo | Cubierto por pruebas automáticas |
Qué aprendí
- En un sistema de plata, las reglas van primero. Escribir las fórmulas y los ejemplos antes de programar evitó discusiones después.
- Guardar el dato con el que se calculó. Cada pago conserva la cotización usada, para poder explicar cualquier número.
- Marcar lo pendiente en lugar de adivinar.
JavaScriptCSSNext.jsReactSupabasePostgreSQLPWADocker