viernes, 17 de abril de 2026

Main vs. Features: El arte de innovar sin romper lo que ya funciona

En el mundo del desarrollo de software, llega un momento en que el "copiar y pegar" carpetas o renombrar archivos como proyecto_final_v2_este_si.zip deja de ser una opción. Si queremos jugar en primera, especialmente con arquitecturas modernas como las que manejamos en GestiónCuotas, el control de versiones no es un lujo: es el cimiento.

Git: Mucho más que un historial de cambios

Adoptar Git como plataforma de soporte no es solo tener un "seguro de vida" ante errores; es habilitar una metodología de trabajo que separa la estabilidad de la innovación. Aquí es donde entra el concepto de las ramas (branches).

¿Qué es una rama? Imaginalo como una línea de tiempo paralela. Podés probar una funcionalidad nueva, romper todo el código y, si no te gusta, simplemente borrar esa línea sin haber tocado ni un pelo del código que ya está funcionando en producción.

La importancia de diferenciar 'Main' de las demás

En nuestra estructura, la rama Main (o Master) es sagrada. Es el código que es seguro, confiable y que está "a la vista" del cliente. No se toca nada en Main si no ha sido probado previamente.

  • Ramas de Feature: Son ramas efímeras. Por ejemplo, si estamos trabajando en la lógica de coeficientes para consorcios, creamos una rama específica. Ahí es donde "hacemos lío", probamos y pulimos.
  • Aislamiento de errores: Si un desarrollador comete un error en su rama, el resto del equipo puede seguir trabajando en Main sin enterarse. No hay riesgo de "pisarse" los cables.

Colaboración sin caos

Acá es donde Git brilla cuando laburamos con otros. Gracias a herramientas como los Pull Requests o los Merges, integrar el trabajo de un colega es un proceso ordenado. Podés revisar el código de tu par, sugerir mejoras y, una vez que el "visto bueno" está dado, ese código se funde con la rama principal.

Es, en esencia, una forma de democratizar el desarrollo manteniendo una jerarquía de calidad. Permite que cada uno aporte su granito de arena sin que el proyecto se vuelva un caos total.

"Al final del día, usar Git es lo que separa a un pibe que pica código de un profesional que construye sistemas."

Conclusión

Ya sea que estés trabajando solo en tu PC de casa con Ubuntu o colaborando con un equipo distribuido entre Mendoza y el resto del mundo, Git es el lenguaje universal que asegura que tu propiedad intelectual esté a salvo. Así que, si todavía tenés miedo de hacer ese primer commit, ¡metele para adelante! No hay nada más satisfactorio que ver un historial de Git limpio y saber que, pase lo que pase, tenés el control total de tu obra.

¡A seguir codeando, que el MVP no se va a programar solo! ¡Un gran saludo, maestro!

sábado, 11 de abril de 2026

CuotasCloud: La evolución de nuestra plataforma de gestión

CuotasCloud: La evolución de nuestra plataforma de gestión

Es un gusto compartir con ustedes los avances de nuestro nuevo proyecto: CuotasCloud. Esta plataforma nace de la necesidad de modernizar los sistemas locales anteriores, llevando toda la potencia de la gestión administrativa y financiera a una arquitectura 100% basada en la nube.

Seguridad de nivel bancario

Una de las mayores preocupaciones al manejar datos sensibles es la privacidad. Por eso, CuotasCloud utiliza una tecnología de "aislamiento por esquemas", lo que significa que la información de cada institución vive en su propio compartimento estanco, totalmente separado de los demás. Además, cada movimiento queda registrado en un historial de auditoría que garantiza la trazabilidad y el cumplimiento de la Ley de Protección de Datos Personales en Argentina.

Un motor que se adapta a tu realidad

No importa si sos un colegio que gestiona cuotas de alumnos o un consorcio que liquida expensas; nuestro motor financiero es "agnóstico". Esto significa que el sistema puede configurarse para hablar tu mismo idioma:

  • 🔹 Para Educación: Manejo de ciclos lectivos, inscripciones y descuentos por hermanos.
  • 🔹 Para Consorcios: Gestión de unidades funcionales y coeficientes de copropiedad.

Experiencia rápida y fluida

Sabemos que el tiempo es oro. Gracias a la implementación de tecnologías modernas (como HTMX), la interfaz de CuotasCloud es reactiva: cuando registrás un pago o actualizás un saldo, los cambios aparecen al instante sin que la página tenga que recargarse por completo. Es la comodidad de una aplicación de escritorio con la flexibilidad de la web.

Migración sin dolores de cabeza

Para quienes vienen de sistemas antiguos en Access o planillas de Excel, hemos diseñado un asistente de importación inteligente. Este "motor de mapeo" procesa tus archivos actuales y genera automáticamente los saldos iniciales, asegurando que no se pierda ni un centavo de información en la transición.

Actualmente estamos finalizando la etapa de visualización de métricas de cobrabilidad en tiempo real. ¡El motor de CuotasCloud ya está en marcha!

Alejandro Noli
Líder de Proyecto - Mendoza, Argentina

sábado, 4 de abril de 2026

Nuevas Fronteras en GestiónCuotas: UI Reactiva, Seguridad Multi-Tenant y Migración de Datos

Nuevas Fronteras en GestiónCuotas: UI Reactiva, Seguridad Multi-Tenant y Migración de Datos

¡Seguimos avanzando a paso firme en el desarrollo de nuestro motor de gestión SaaS! Durante las últimas semanas, el equipo se ha centrado en tres pilares fundamentales que transforman el proyecto de un motor de backend robusto a una plataforma lista para el despliegue inicial. Estos avances no solo mejoran la experiencia de usuario, sino que también solidifican la arquitectura para garantizar la seguridad, escalabilidad y auditabilidad que nos propusimos desde el inicio.

A continuación, detallamos las tres grandes fases que hemos completado.

1. Fase 1.3: Ficha de Detalle Reactiva con HTMX

La interacción del administrador con el estado de cuenta de un sujeto de facturación (sea un alumno o un copropietario) es una de las tareas más recurrentes. Para hacer este proceso ágil y moderno, hemos implementado una "Ficha de Detalle" que evita las recargas de página completas, ofreciendo una experiencia de usuario fluida y eficiente.

¿Cómo lo logramos?

  • Interactividad con HTMX: Utilizamos la biblioteca HTMX para enviar solicitudes al backend y actualizar solo los fragmentos necesarios del DOM. Al registrar un pago, únicamente la tabla de deudas y el saldo total se actualizan, sin que el navegador deba recargar toda la página.
  • Diseño limpio con Tailwind CSS: La interfaz fue construida con clases utilitarias de Tailwind CSS, logrando un diseño profesional, agnóstico y semántico. Los colores de los estados (Verde para Pagado, Rojo para Vencido) permiten una rápida identificación visual.
  • Feedback al Usuario: Implementamos indicadores de carga (hx-indicator) que muestran un spinner mientras el motor procesa un pago, informando al usuario que una acción está en progreso.

Ejemplo del botón de pago en nuestro template de Django:

<!-- Formulario de Pago con HTMX -->
<form hx-post="{% url 'facturacion:registrar_pago' sujeto.id %}" 
      hx-target="#tabla-deudas-container"
      hx-swap="innerHTML"
      hx-indicator="#pago-loading">
    
    <button type="submit" class="btn-pagar">
        <span id="pago-text">Registrar Pago</span>
        <!-- Indicador de carga -->
        <svg id="pago-loading" class="htmx-indicator animate-spin" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
            <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
            <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8H4z"></path>
        </svg>
    </button>
</form>

2. Fase 1.4: Sistema de Seguridad Multi-Tenant (RBAC)

La seguridad y el aislamiento de datos son innegociables en una arquitectura SaaS multi-tenant. Hemos implementado un Control de Acceso Basado en Roles (RBAC) que se integra perfectamente con django-tenants.

Niveles de Acceso Definidos:

  • SuperAdmin (Global): Control total sobre el esquema public, responsable de crear y gestionar los Tenants (los clientes del SaaS).
  • Admin de Tenant: El administrador principal de una escuela o consorcio. Puede configurar su tenant, crear otros usuarios y acceder a reportes.
  • Operador de Caja: Un rol con permisos limitados, enfocado en la operatoria diaria. Solo puede ver estados de cuenta y registrar pagos.

Gracias al middleware de django-tenants, cualquier intento de un usuario de un tenant de acceder a datos de otro es bloqueado a nivel de base de datos, garantizando un aislamiento total.

Adicionalmente, se implementaron decoradores de permisos personalizados (ej. @role_required('admin')) para proteger las vistas y servicios de forma granular. Para una trazabilidad legal completa, se extendió el AbstractAuditModel para registrar el usuario (ID y Rol) que realizó cada cambio, incluyendo una "instantánea" del rol en el momento de la operación.

3. Fase 1.5: Asistente de Importación de Datos Legados

Para facilitar la transición de nuestros primeros clientes, hemos desarrollado un "Asistente de Importación" que permite migrar datos desde archivos Excel/CSV de forma segura y controlada.

Características Clave:

  • Motor de Mapeo Agnóstico: El servicio utiliza la biblioteca Pandas para procesar los archivos. Mapea columnas con nombres genéricos (ej. 'DNI_TUTOR', 'SALDO_ADEUDADO') a los modelos abstractos de nuestro sistema, asegurando la flexibilidad.
  • Creación de Saldos Iniciales: Al importar, el sistema genera automáticamente una "Cuota de Ajuste" o "Saldo Inicial" para cada sujeto, garantizando que su cuenta corriente en el nuevo sistema refleje con precisión su estado anterior.
  • Reporte de Errores Detallado: Si una fila del archivo contiene errores (ej. un CUIT duplicado o un formato de fecha inválido), el proceso no se detiene. En su lugar, se registran los errores y se genera un log para que el usuario pueda corregir solo las entradas problemáticas, mientras se procesan las válidas.
  • Trazabilidad y Auditoría: Cada registro creado mediante este proceso queda marcado en nuestro AbstractAuditModel como una "Carga Masiva Inicial", cumpliendo con nuestros estrictos requisitos de auditabilidad y defendibilidad judicial.
  • Interfaz con HTMX para el progreso: El asistente de importación incorpora una vista simple con HTMX que muestra una barra de progreso o un spinner, manteniendo al usuario informado sobre el estado del procesamiento del archivo.

Conclusión y Próximos Pasos

Con estos avances, GestiónCuotas está más cerca que nunca de su lanzamiento piloto. Hemos sentado las bases de una interfaz de usuario moderna, un sistema de seguridad robusto y una vía de migración eficiente para nuestros futuros clientes e inversores.

El próximo gran paso será el despliegue del Dashboard de Control de Gestión, donde los administradores podrán visualizar métricas de cobrabilidad en tiempo real. ¡El motor está listo y funcionando!

Publicado por el equipo de desarrollo de GestiónCuotas - Mendoza, 2026.

¡Estamos listos para Producción! El futuro de la gestión multi-tenant ya está aquí Nos llena de orgullo anunciar un hito fund...