Marcelo Daniel Toledo

Marcelo Daniel Toledo

Software Developer | Licenciado en Informática

Volver a Proyectos
Cover de WSC Software
Logo de WSC Software

WSC Software

SaaS

SaaS enlatado y reutilizable para gestión de pedidos y stock, con módulos y funcionalidades configurables por cliente e integración con distintos servicios externos ERP, incluyendo Tango Software.

.NET Blazor SQL Server CI/CD SignalR Hangfire Polly

Contexto

WSC Software nació como un producto SaaS reutilizable para empresas del rubro de gestión de pedidos y distribución. La premisa era clara desde el arranque: no construir un sistema a medida para un cliente específico, sino diseñar una plataforma lo suficientemente genérica y configurable para ser desplegada en múltiples clientes sin tocar el core entre un deployment y otro. Desde el origen del producto, la integración con ERPs como Tango Software fue una decisión de diseño central, no una feature secundaria: los clientes target ya operaban sobre estos sistemas, y WSC tenía que encajar naturalmente en ese workflow sin imponer una ruptura operativa.

El desafío

El verdadero desafío técnico no era construir las funcionalidades en sí, sino diseñar una arquitectura donde cada cliente pudiera tener su propio plan, sus propios módulos habilitados, su propia integración ERP y sus propias reglas de negocio —sin que esa variabilidad se convirtiera en deuda técnica. Cada cliente opera con su propia instancia aislada, con tiempos de sincronización ERP configurables según las ventanas de disponibilidad de su propio proveedor, y con capacidades offline habilitadas o deshabilitadas según sus necesidades operativas. El sistema tiene que funcionar en zonas con conectividad degradada, adaptarse a distintos flujos de aprobación de pedidos y exponer solo los módulos del plan contratado —todo sin bifurcar el código.

La solución

Se diseñó y desarrolló la plataforma desde cero con los siguientes pilares:

Arquitectura modular y reutilizable — cada cliente tiene su configuración de plan independiente. Los módulos disponibles, los permisos por rol y las integraciones activas se derivan de esa configuración sin modificar el core del sistema.

Sistema de roles y permisos completo — autenticación y autorización con ASP.NET Identity, con roles y permisos totalmente configurables por cliente. El panel de administración incluye trazabilidad completa de entidades, visualización de logs y métricas de uso de recursos para el equipo de soporte.

Notificaciones en tiempo real vía SignalR — los usuarios reciben actualizaciones instantáneas ante modificaciones de pedidos, cambios de precios, variaciones de stock y actualizaciones de datos desde los servicios ERP externos. También se emiten alertas cuando un servicio externo queda indisponible, permitiendo al equipo reaccionar antes de que el problema impacte la operación.

Sincronización configurable con Hangfire — cada cliente define sus propios intervalos de sincronización con su ERP. Esto responde a una realidad concreta: distintos proveedores ERP tienen distintas ventanas de disponibilidad y límites de carga, y forzar un único schedule global generaba conflictos operativos.

Operación offline con IndexedDB y PWA — precios, stock y datos críticos se almacenan localmente en IndexedDB. Los pedidos pueden guardarse como borradores en el navegador y enviarse cuando se recupera la conexión. Esta capacidad es configurable por cliente: algunos operan en depósitos o zonas con conectividad degradada donde el offline es un requisito real, no un nice-to-have.

Exportación multi-formato — los datos pueden exportarse a CSV, PDF y texto plano según la necesidad del cliente, con los formatos disponibles configurados por plan.

Situación actual

El sistema está actualmente en producción con múltiples clientes activos, dedico mi tiempo libre al mantenimiento/actualización del stack y librerías utilizadas.

Tecnologías

  • .NET — backend y lógica de negocio
  • Blazor — interfaz web interactiva
  • SQL Server — base de datos principal
  • Azure DevOps + CI/CD — integración y despliegue continuo
  • SignalR — comunicación en tiempo real
  • Hangfire — procesamiento de tareas en background y sincronización configurable
  • IndexedDB — almacenamiento local para operación offline
  • xUnit — testing unitario
  • ASP.NET Identity — autenticación y autorización
  • MudBlazor — componentes UI