PayLend
PayLend es una aplicación móvil Premium de tipo Offline-First diseñada para la gestión integral de préstamos, cobros y finanzas, construida con Flutter. Garantiza que el usuario pueda operar el 100% de la aplicación sin internet, con una sincronización transparente en segundo plano.
🚀 Idea General
El sistema está construido bajo estrictos principios de Clean Architecture y una estrategia Offline-First. Emplea un motor de sincronización bidireccional avanzado y un motor financiero de alta precisión (usando números decimales y racionales para evitar errores de punto flotante) para el cálculo exacto del Sistema Francés, gestión de abonos a capital, y amortizaciones.
🛠 Tecnologías Utilizadas
- Framework & UI: Flutter (SDK ^3.11.4) con diseño “Dark Premium”
- Gestión de Estado:
flutter_riverpod(riverpod_annotation) - Navegación & Deep Linking:
go_router - Base de Datos Local:
drift(SQLite) con queries relacionales complejos y streams reactivos - Backend & Sincronización en la Nube:
supabase_flutter(Auth, PostgreSQL, Storage, RPCs) - Matemática de Alta Precisión:
decimalyrational - Seguridad y Autenticación: Autenticación híbrida (
google_sign_in,sign_in_with_apple), y biometría conlocal_auth - Internacionalización (i18n):
easy_localization(Soporta Inglés, Español, Alemán, Francés, Criollo Haitiano, Italiano y Portugués) - Reportes y Exportación:
pdf,printing,csvyshare_plus - Gráficos e Inteligencia de Negocios:
fl_chartpara dashboards visuales y proyecciones - Suscripciones:
purchases_flutter(RevenueCat) - Telemetría y Estabilidad:
firebase_analyticsyfirebase_crashlytics
📦 Modelos de Datos
El esquema relacional mapea de 1 a 1 las operaciones de crédito:
- Clientes (Clients):
id,firstName,lastName,phone,identityDocument - Préstamos (Loans):
id,clientId,principalAmount,interestRate,termMonths,paymentFrequency - Cuotas (Installments):
id,loanId,installmentNumber,dueDate,amountDue,status,paidAt - Pagos (Payments): Registro atómico e inmutable (
id,installmentId,amount,principalAmount,interestAmount,paymentDate) - Servicios (Services): Catálogo de cargos adicionales
- Cola de Sincronización (SyncQueue): Metadatos de operaciones offline para sincronización (
targetTable,operation,recordId,payload)
🏗 Arquitectura y Estructura
- Sincronización Bidireccional (Offline-First): Emplea el Outbox Pattern, guardando mutaciones en una tabla de cola (
SyncQueue) y usando Isolates para descargas en segundo plano sin bloquear la UI. - Motor Financiero de Alta Precisión: Cálculos matemáticos usando librerías de precisión absoluta, evitando errores fraccionales nativos de SQLite/Dart.
- Módulo de Inteligencia de Negocios (BI): Motor de riesgo (PayLend Score) con calificaciones (A-F) y proyecciones de flujo de caja interactivas.
🔒 Seguridad y Mejores Prácticas
- Derecho al Olvido: Proceso riguroso para borrar cuentas permanentemente y limpiar datos almacenados.
- Protección Biométrica: Acceso restringido por Face ID / Touch ID, con fallback inteligente a PIN.
- Borrado Lógico (Soft Deletion): Columna
deleted_atpara prevenir re-hidratación de datos y gestionar borrados offline, apoyado por un Garbage Collector programado en Supabase (pg_cron). - Autenticación Mágica: Acceso sin contraseña con Magic Links, además de integraciones sociales nativas.