jueves, 14 de mayo de 2026

¡Estamos listos para Producción! El futuro de la gestión multi-tenant ya está aquí

Nos llena de orgullo anunciar un hito fundamental en nuestro desarrollo: nuestra plataforma SaaS de gestión de cuotas y servicios ha finalizado su etapa de pruebas y está oficialmente lista para producción. Tras un intenso trabajo de arquitectura y desarrollo, hemos desplegado nuestra solución en la nube (VPS en DonWeb), orquestada con Nginx y Gunicorn para garantizar la máxima disponibilidad y rendimiento.

Integración Nativa con SIRO (Banco Roela)

Uno de los avances más importantes de esta versión de lanzamiento es la integración completa con SIRO, lo que automatiza por completo el circuito de recaudación:

  • Códigos de Pago Inteligentes: Los responsables de pago ahora pueden visualizar sus códigos de barras y códigos de pago electrónico (CEP) directamente desde su portal de autogestión.
  • Conciliación Automática: Implementamos un motor de procesamiento que lee los archivos de rendición bancaria y aplica los pagos automáticamente a las obligaciones correspondientes, eliminando horas de carga manual.
  • Aislamiento de Convenios: Gracias a nuestra arquitectura multi-tenant, cada institución (consorcio o escuela) configura y opera bajo su propio convenio de forma totalmente segura.

Un Motor Agnóstico y Judicialmente Auditable

Nuestra plataforma no es solo un sistema de facturación, es una herramienta Legal-Tech. Construida sobre Django 5 y PostgreSQL (con esquemas aislados mediante django-tenants), hemos abstraído el dominio para manejar "Sujetos de Facturación", permitiendo que el sistema se adapte (mediante skins) tanto a la gestión de Expensas de Consorcios como a Cuotas de Escuelas usando el mismo motor financiero.

Además, en cumplimiento estricto con la Ley 25.326 de Protección de Datos y pensando en la "defendibilidad" ante posibles pericias judiciales, el 100% de los movimientos financieros (cálculos de mora, intereses y pagos) cuenta con una trazabilidad y auditabilidad total.

UX Moderna y Dinámica sin perder robustez

Hemos implementado una interfaz reactiva utilizando HTMX, lo que nos permite ofrecer una experiencia fluida y rápida similar a una SPA (Single Page Application), pero manteniendo la seguridad y simplicidad del Server-Side Rendering. El nuevo Portal de Autogestión es intuitivo, rápido y seguro.

Próximos pasos: Ya estamos configurando los primeros entornos (tenants) reales en producción. El ecosistema está listo para escalar y transformar la forma en que las instituciones gestionan sus finanzas. ¡Gracias a todos los que hicieron esto posible!

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.

jueves, 12 de marzo de 2026

Sistema de Gestión de Cuotas y Pagos para Instituciones Educativas

Estado Actual de la Aplicación de Gestión de Cuotas

Sistema de Gestión de Cuotas y Pagos para Instituciones Educativas

Esta aplicación web, desarrollada con Django, está diseñada para optimizar la administración financiera de instituciones educativas. Permite gestionar de forma eficiente las cuotas estudiantiles, los pagos recibidos y el estado de cuenta de cada alumno.

Funcionalidades Principales:

  • Gestión Integral de Alumnos: Mantenimiento centralizado de la información de alumnos y sus familias, incluyendo datos de contacto, DNI, fecha de nacimiento, y estado de pago anual o convenios.
  • Administración de Ciclos Lectivos y Cursos: Define y organiza los ciclos lectivos, asignando cursos con montos base de cuota a cada uno. La aplicación se enfoca en el ciclo lectivo activo para reflejar el contexto financiero actual.
  • Inscripciones y Acuerdos de Pago: Registra las inscripciones de alumnos a cursos específicos, estableciendo el monto exacto de la cuota acordada para esa inscripción y permitiendo definir su estado (Activa, Baja, Egresado).
  • Registro Detallado de Pagos: Permite registrar cada pago recibido, especificando el concepto (cuota mensual, matrícula, material, etc.), el método de pago (efectivo, transferencia, mercado pago, etc.), el mes y año correspondiente, y el monto abonado. Soporta movimientos de crédito y débito.
  • Cálculo Automático de Deudas: Basándose en las inscripciones activas y los pagos registrados para el ciclo lectivo actual, la aplicación calcula automáticamente el saldo adeudado por cada alumno, identificando los meses pendientes de pago y el monto total de la deuda.
  • Visión Clara del Estado Financiero: Ofrece perfiles detallados de cada alumno, mostrando su historial de pagos, inscripciones activas, deuda actual, y el próximo mes a abonar. Incluye estadísticas de pagos y cantidad de transacciones.
  • Gestión por Instituto: La aplicación soporta la administración de múltiples instituciones (Institutos), asegurando que los usuarios solo vean la información correspondiente a su entidad.
  • Acceso Web y Navegación Intuitiva: Las funcionalidades son accesibles a través de una interfaz web clara y organizada, con rutas específicas para listar alumnos, ver detalles individuales, registrar pagos y gestionar inscripciones.

Esta herramienta simplifica la labor administrativa, reduce errores manuales y proporciona una visión precisa y actualizada de las finanzas estudiantiles, facilitando una gestión más ágil y transparente.

martes, 3 de marzo de 2026

Informe de Estado y Proyección: Sistema de Gestión Académica

Fecha: 2 de marzo de 2026
Proyecto: Migración y Escalabilidad del Sistema de Cuotas y Alumnos
Estado: Fase de Infraestructura Core Completada


1. Resumen de lo Realizado hasta la Fecha

Se ha completado con éxito la transición del antiguo modelo de datos (basado en Access) hacia una arquitectura web moderna utilizando Django y PostgreSQL. Este cambio garantiza integridad de datos, capacidad de acceso multiusuario simultáneo y seguridad remota.

Logros Técnicos:

  • Normalización de Base de Datos: Se implementó una jerarquía relacional lógica: Ciclo Lectivo > Curso > Inscripción > Alumno. Esto permite que la academia crezca año tras año manteniendo un histórico impecable sin duplicar fichas de alumnos.
  • Gestión de Ciclos Lectivos: Implementación de una entidad global que permite "activar" o "desactivar" periodos académicos. Esto automatiza la lógica de cobro y asegura que los administrativos siempre trabajen sobre el año vigente por defecto.
  • Módulo de Cobranza Dinámico: Creación de un sistema de seguimiento de cuotas por mes, permitiendo el registro detallado de medios de pago (Efectivo, Transferencia, Mercado Pago) y vinculándolos a una inscripción específica.
  • Interfaz de Administración Avanzada: Configuración de un panel de control con edición anidada (Inlines). Ahora, desde la ficha de un alumno, es posible gestionar sus inscripciones y pagos de forma centralizada.

2. Estructura de Datos Actual

El sistema ha sido diseñado bajo tres pilares de consistencia:

  1. El Ciclo Lectivo: Es el eje temporal (ej. 2025, 2026). Controla cuándo inician las actividades y cuál es el periodo de facturación actual.
  2. El Curso: Está anclado a un Ciclo Lectivo y define la oferta académica y el costo base de la cuota para ese periodo.
  3. La Inscripción: Es el contrato legal/económico. Vincula al alumno con un curso y permite pactar montos especiales (becas o acuerdos por contingencia).

3. Visión de Futuro: Próximos Módulos

El sistema está preparado para evolucionar de una herramienta de gestión administrativa a una Plataforma Educativa Integral.

A. Módulo de Calificaciones (Acceso Docente Seguro)

Este es el próximo hito fundamental. El objetivo es descentralizar la carga de notas manteniendo la máxima seguridad:

  • Roles de Usuario (RBAC): Perfil específico para "Profesores". El docente solo podrá visualizar y editar los datos de los alumnos inscritos en sus cursos asignados.
  • Privacidad de Datos: El personal docente no tendrá acceso a la información financiera ni a datos sensibles de contacto de las familias.
  • Libreta Digital y Actas: Interfaz intuitiva para carga de calificaciones. Incluirá un sistema de "Cierre de Acta" para bloquear las notas una vez finalizado el periodo de carga.

B. Portal para Familias y Alumnos

  • Autogestión: Consulta online de estados de cuenta y descarga de recibos.
  • Boletín de Calificaciones: Visualización en tiempo real de las notas cargadas.

C. Auditoría y Cumplimiento Legal

  • Logs de Actividad: Registro automático de cada cambio realizado en el sistema (quién modificó una nota, quién registró un pago).
  • Protección de Datos: Adaptación de los formularios a los marcos legales de protección de datos personales.

4. Conclusión Técnica

La base actual es sólida y escalable. Gracias al uso de Docker, el sistema es "cloud-ready", permitiendo una migración inmediata a un servidor web cuando se decida abrir el acceso a los profesores. La arquitectura modular garantiza que la incorporación del sistema de notas sea un proceso fluido.

viernes, 21 de marzo de 2025

Mejoras en el Software de Gestión de Cuotas

 El software sigue funcionando. No está roto. No ha colapsado. Pero la deuda técnica está ahí, acumulándose como una pila de tareas pendientes que nunca encuentran su momento. Ha llegado la hora de hacer algo al respecto.

El objetivo para lo que queda del año es claro: mejorar lo que ya está, saldar deudas técnicas y dejar el código en un estado más sólido y mantenible. No se trata de una revolución, sino de pequeños ajustes, optimizaciones y rediseños que hagan la diferencia.

¿Qué cambios se vienen?

👉 Refactorización del código: Hay fragmentos que funcionan, sí, pero con un nivel de rudeza que duele ver. La idea es hacerlos más eficientes, más organizados y más fáciles de mantener.

👉Optimización de la gestión de cuotas: Mejorar la estructura de los datos y los reportes para hacer el seguimiento de pagos más claro y ágil.

👉Automatización de tareas repetitivas: Reducir el trabajo manual con VBA y macros, permitiendo que el sistema haga más con menos intervención.

👉Interfaz más intuitiva: Sin necesidad de una revolución estética, pequeños ajustes pueden hacer que el uso del software sea más fluido y amigable.

El dilema de siempre

Este es un proyecto sin un retorno económico directo. No hay una retribución esperándome al final del camino. Hacerlo es una cuestión de convicción, de satisfacción personal, de la certeza de que algo que fue útil puede ser mejor y más duradero.

Y aunque el código pueda mejorar y el sistema pueda optimizarse, hay un límite: no puedo hacerlo público. No es un software para compartir abiertamente, sino una herramienta con información sensible que debe mantenerse en su contexto.

Conclusión

Se vienen meses de trabajo silencioso. No será un desarrollo frenético ni un rediseño total, pero cada mejora sumará a la estabilidad del sistema. Quizás, en el futuro, este software pueda trascender más allá de su uso actual y convertirse en algo más grande. Pero por ahora, lo que toca es seguir adelante, mejorar lo que se pueda y disfrutar del proceso. 👍



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