What it isQué es
A real-estate management system (ERP) for a Colombian company that sells land lots in Tolima. Beyond the public site, an internal operations centre runs the whole business: projects and lots on an interactive map, buyers and sales, installments, commissions, invoices, expenses, approvals, legal follow-up, backups, consolidated reports and role-based permissions.Un sistema de gestión inmobiliaria (ERP) para una empresa colombiana que vende lotes en el Tolima. Más allá del sitio público, un centro de operación interno maneja todo el negocio: proyectos y lotes en un mapa interactivo, compradores y ventas, cuotas, comisiones, facturas, gastos, aprobaciones, seguimiento jurídico, respaldos, reportes consolidados y permisos por rol.
My partMi participación
I took part as principal developer, consultant and lead of the technology stack. I helped shape the architecture and built across the platform — from the domain model to the money logic to the security layer.Participé como desarrollador principal, consultor y líder del stack tecnológico. Ayudé a definir la arquitectura y construí a lo largo de la plataforma — desde el modelo de dominio hasta la lógica de dinero y la capa de seguridad.
The challengeEl reto
This was the hardest kind of project: modelling a real, messy business. It meant sitting with how the company actually sells — reservations, financing plans, overdue interest, commissions, deeds — and turning that into a coherent data model and 20-plus modules that stay consistent with each other. On top of the domain came the serious parts: role-based permissions for owners, treasurers and salespeople; two-factor auth and session revocation; audit trails; automatic backups; and money math run inside PostgreSQL so it can never drift. Leading the stack meant choosing tools that a small team could actually operate.Fue el tipo de proyecto más difícil: modelar un negocio real y desordenado. Implicó entender cómo vende de verdad la empresa — reservas, planes de financiación, intereses de mora, comisiones, escrituras — y convertir eso en un modelo de datos coherente y más de 20 módulos que se mantienen consistentes entre sí. Sobre el dominio vinieron las partes serias: permisos por rol para dueños, tesoreros y vendedores; doble factor y revocación de sesiones; trazas de auditoría; respaldos automáticos; y cuentas de dinero corriendo dentro de PostgreSQL para que nunca se desajusten. Liderar el stack significó elegir herramientas que un equipo pequeño pudiera operar de verdad.
Tech behind itTecnologías detrás
- Node.js + Express MVC API: controllers · routes · services.API MVC: controladores · rutas · servicios.
- Supabase (PostgreSQL) Schema-scoped data with stored procedures.Datos por esquema con procedimientos almacenados.
- JWT + 2FA Auth, roles, session revocation.Auth, roles, revocación de sesiones.
- Cloudinary + Multer Document and image uploads.Subida de documentos e imágenes.
- Leaflet Interactive lot map by status.Mapa interactivo de lotes por estado.
- Nodemailer + esbuild Transactional email and bundling.Correo transaccional y bundling.
HighlightsLo más llamativo
Lots on a live mapLotes en un mapa vivo
Every project drawn on an interactive map, each lot colour-coded by status — available, sold, delivered — and filterable by price and area. Sales and geography, in one view.Cada proyecto dibujado en un mapa interactivo, cada lote coloreado por estado — disponible, vendido, entregado — y filtrable por precio y área. Ventas y geografía, en una sola vista.
Consolidated reportsReportes consolidados
The finance cockpit: monthly collections, portfolio by status, overdue receivables and a twelve-month income projection — the numbers the owners actually steer by.La cabina financiera: recaudo mensual, cartera por estado, cuentas vencidas y una proyección de ingresos a doce meses — los números con los que los dueños realmente dirigen.
Permissions by rolePermisos por rol
A full access-control matrix: for each role — owner, treasurer, area chief, surveyor — you toggle which modules appear and which actions they may take, down to "co-sign large purchases".Una matriz de control de acceso completa: para cada rol — dueño, tesorero, jefe de área, topógrafo — activas qué módulos aparecen y qué acciones puede hacer, hasta "co-firmar compras grandes".
Operational expensesGastos operativos
Every outflow tracked by project and category with its receipt, running balances and one-click export to Excel — the unglamorous backbone that keeps the operation honest.Cada egreso registrado por proyecto y categoría con su comprobante, saldos acumulados y exportación a Excel en un clic — la columna vertebral poco vistosa que mantiene la operación en orden.