Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
App del edificio · Jr. Enrique Salazar Barreto Una aplicación web para que un edificio de siete departamentos en Lima se administre solo: repartir los gastos del mes, cobrar, verificar los pagos y que los siete vecinos vean en qué van las cuentas desde el teléfono. No hay administradora contratada. Uno de los vecinos cierra el mes cada mes, y el resto quiere abrir la app, ver cuánto le toca, pagar y no pensar más en eso. En producción: · app en Vercel, base en Railway.Read the full README ↗
Una aplicación web para que un edificio de siete departamentos en Lima se administre solo: repartir los gastos del mes, cobrar, verificar los pagos y que los siete vecinos vean en qué van las cuentas desde el teléfono.
No hay administradora contratada. Uno de los vecinos cierra el mes cada mes, y el resto quiere abrir la app, ver cuánto le toca, pagar y no pensar más en eso.
En producción: https://salazar-barreto-bob.vercel.app · app en Vercel, base en Railway.
Siete departamentos, cada uno con su porcentaje de participación —su flat— tomado de la escritura del edificio. Los siete suman exactamente 100.00.
| Dpto | Piso | Flat |
|---|---|---|
| 101 | 1 | 11.72 % |
| 201 | 2 | 10.21 % |
| 202 | 2 | 20.11 % |
| 301 | 3 | 10.21 % |
| 401 | 4 | 10.21 % |
| 501 | 5 | 17.31 % |
| 502 | 5 | 20.23 % |
Cada mes hay tres clases de gasto, y se reparten distinto:
Hay dos casos particulares que el código trata con nombre propio: el lavado de vehículo del 401 —m³ que se restan del área común y se le suman a él, sin que cambie el total del edificio— y los créditos, que se descuentan de la cuota de un departamento y salen del saldo de la cuenta conjunta, no del bolsillo de los demás.
Las reglas completas, con sus fórmulas y sus casos borde, están en
mockup/design_handoff_edificio_salazar_barreto/01-reglas-de-negocio.md.
Necesitas Node 20 o más y un PostgreSQL 16 al que puedas apuntar.
git clone https://github.com/TheLabReset/Salazar-Barreto-BOB.git
cd Salazar-Barreto-BOB
npm ci
cp .env.example .env # y rellena DATABASE_URL, DIRECT_URL, ADMIN_PIN, ADMIN_SECRETO
npm run db:migrate # crea las tablas
npm run db:seed # siembra los datos reales: enero a junio de 2026 publicados
npm run dev # http://localhost:3000
Salió bien si al abrir el navegador ves el onboarding —«¿Cuál es tu departamento?»— y al elegir uno aparece la pantalla de Inicio con una cuota.
La semilla deja seis meses publicados (enero a junio de 2026) y julio a medias, para que tengas un cierre que terminar. Diciembre de 2025 está ahí y no se publica nunca: existe solo para darle a enero su lectura anterior. Eso no es lo que hay en producción, que lleva ocho meses publicados cargados con los datos reales del edificio.
Para entrar al panel de administración: /admin, con el ADMIN_PIN que pusiste
en .env.
Las variables de entorno están explicadas una por una —de dónde sale cada una y dónde va— en
docs/DESPLIEGUE.md. Solo cinco son obligatorias.
lib/calculo/ El motor. Puro, sin base de datos, sin React.
lib/datos/ Leer de Postgres y dárselo al motor.
lib/servicios/ Escribir. Transacciones, auditoría, avisos, bloqueo.
lib/bob/ El asistente: catálogo, modelo, guardas y herramientas.
app/ Rutas de Next: pantallas (Server Components) y API.
components/ La interfaz. `ui/` son las piezas, `pantallas/` las pantallas.
prisma/ Esquema, migraciones y semilla.
scripts/ Verificadores y pruebas negativas. No son utilidades: son puertas.
tests/ Integración (contra Postgres) y extremo a extremo (Playwright).
docs/ Cómo se construyó, cómo se despliega, qué se verificó.
mockup/ El encargo original. La fuente de verdad del diseño y las reglas.
lib/calculo/ · el motorPuro: entra un EntradasMes, sale un ResultadoMes. No sabe de Prisma ni de
React, y por eso se puede probar a millones de combinaciones sin levantar nada.
| Fichero | Qué hace |
|---|---|
calcularMes.ts | El cálculo entero de un mes: las siete cuotas, el total y los cuadres. |
reparto.ts | Reparto por flat con resto mayor (Hamilton), para que los céntimos cuadren. |
redondeo.ts | Dónde cae cada Math.round. No es cosmético: cambia el último céntimo. |
saldo.ts | La cuenta conjunta mes a mes y el balance de cada departamento. |
sanidad.ts | Lo que tiene que ser imposible: un porcentaje mayor a 100, una cuota negativa. |
correccion.ts | Detecta dígitos transpuestos en una lectura y propone el arreglo. |
constantes.ts | Los siete departamentos, sus flats y los conceptos de gasto. Datos reales. |
This is the beginning of the README. Read the rest at the original. Read the full README ↗