Toto Garza

Caso técnico · Bioteksa Ecosystem

Un ecosistema operativo para distribuidores y equipos internos

Una API de orquestación conecta la app y los paneles internos con servicios especializados de CFDI, inventarios y generación de documentos.

LaravelFlutterAPI DesignDatos operativos
Diagrama de arquitectura de Bioteksa Ecosystem

Problema

El ecosistema debía dar a los distribuidores de Bioteksa, al equipo comercial y a Crédito y Cobranza una vista consistente de las adquisiciones de producto, el inventario y las condiciones comerciales acordadas. Esa misma información alimenta estados de cuenta donde se reflejan descuentos vigentes, facturas vencidas y sus intereses.

Restricciones

  • Tres tipos de usuario consultando la misma operación desde canales distintos
  • Adquisiciones, inventario, condiciones comerciales y estados de cuenta deben conservar una fuente de verdad común
  • La información de cada distribuidor debe mantenerse dentro de su alcance
  • Notificaciones push en tiempo real
  • Consistencia entre la app móvil y los paneles de los equipos internos

Arquitectura

Distribuidores

App Flutter

Equipos internos

Panel comercialPanel de Crédito y Cobranza

API de orquestación

Laravel RESTAutenticación y autorizaciónComposición de datos operativos

Dominios

Condiciones comerciales y descuentosEstados de cuentaFacturas vencidas e interesesNotificaciones push

Servicios internos

Servicio de facturas y CFDIMotor de generación de PDFGestor de inventarios

Infraestructura

MySQLRedis (Cache, Queues)Firebase

Decisiones de arquitectura

¿Qué papel cumple la API central?

Funciona como capa de acceso y orquestación: aplica autenticación y alcance por usuario, consume los servicios internos de CFDI, generación de PDF e inventarios, y compone la información que necesitan la app y los paneles.

¿Por qué una sola API para app y panel?

Porque la app de distribuidores y los paneles internos consumen los mismos recursos con diferentes alcances. Una API unificada evita duplicar reglas y mantiene una vista consistente de la operación.

¿Por qué Flutter para la app móvil?

Porque permite un solo codebase para iOS y Android, con acceso nativo a notificaciones push y rendimiento cercano a nativo.

¿Por qué separar el acceso por distribuidor y por rol interno?

Porque cada distribuidor consulta su propia operación, mientras que Comercial y Crédito y Cobranza necesitan vistas acordes con sus responsabilidades. El alcance se controla en la aplicación y en las consultas.

Riesgos y modos de fallo

  • API timeout durante picos de consulta
  • Servicio interno no disponible o con respuesta incompleta durante la composición de una consulta
  • Notificación push fallida (token expirado)
  • Inconsistencia de datos entre app y panel
  • Estado de cuenta desactualizado frente a nuevas adquisiciones, descuentos o intereses
  • Cliente con múltiples unidades y condiciones comerciales distintas
  • Cache stale después de actualización de datos

Qué construí

  • API REST de orquestación para adquisiciones, inventario, condiciones comerciales y estados de cuenta
  • Integración con los servicios internos de facturas y CFDI, generación de PDF y gestión de inventarios
  • Sistema de autenticación y autorización
  • App Flutter para distribuidores
  • Paneles web para el equipo comercial y Crédito y Cobranza
  • Sistema de notificaciones push
  • Generación de estados de cuenta en PDF

Stack

LaravelFlutterMySQLRedisFirebaseWeasyPrint

Producto en producción

Bioteksa App

Una interfaz compartida para distribuidores, equipo comercial y crédito y cobranza sobre la misma operación.

Publicado por
Bioteksa S.A. de C.V.
Disponible en
iPhone y iPad · iOS 14 o posterior
Primera versión
Publicada en App Store desde 2023
Disponible enApp Store
  1. 01Revisar el estado de cuenta y su desglose
  2. 02Monitorear el inventario de productos
  3. 03Consultar beneficios disponibles
  4. 04Comunicarse con ejecutivos de Bioteksa
  5. 05Recibir asesoría agrológica y solicitar asistencia de productos NUBIOTEK®

Información y capturas tomadas de la ficha pública de App Store.

Fuentes y evidencia

¿Buscas alguien que piense así?

Hablemos sobre tu próximo proyecto.