Ecosistema de gestión para operaciones en energía renovable
18 de junio de 2024
Panel para coordinar al equipo técnico, sitio cliente con evidencias y avance del servicio, y app móvil que captura evidencias en campo con sincronización offline-first.
multicanal
Full-Stack + Mobile
proyecto central
Contexto
Desarrollé un ecosistema integral para coordinar servicios de mantenimiento e inspección en parques eólicos: un panel administrativo donde se planea y controla el trabajo del equipo técnico, un sitio cliente donde se consultan evidencias y avance real del servicio, y una app móvil con la que los técnicos capturan evidencias y reportes desde campo, incluso sin internet.
Reto
Cerrar el ciclo entre planeación, ejecución en campo y entrega de evidencias al cliente, sin perder fotos ni reportes en zonas de conectividad intermitente y respetando reglas estrictas de roles dentro del equipo técnico.
Tipo de colaboración
Desarrollo y mantenimiento evolutivo full-stack del panel y el sitio cliente, más participación en el rediseño y estabilización de la app móvil en su segunda versión.
Mi aporte
- En el panel: módulos para organizar al equipo técnico por proyecto y turbina, asignación de responsables, control de avance y consolidación de reportes.
- En el sitio cliente: vistas para que el cliente acceda a evidencias y al avance real de los trabajos contratados, sin depender de envíos manuales.
- En la app móvil: hice que funcione sin internet y que ninguna foto o reporte se pierda cuando vuelve la señal, con control de permisos por rol, sello automático de contexto en cada evidencia (proyecto, técnico, turbina, fecha) y firma digital integrada.
Resultado
Un ecosistema operativo coherente donde el equipo planea desde el panel, ejecuta y evidencia desde la app, y entrega visibilidad al cliente desde el sitio, con menos pérdidas de información, mejor trazabilidad por servicio y operación continua incluso sin conectividad.
Stack
PHP, Vue, JavaScript, MySQL y APIs REST en panel/sitio. React Native con Expo, TypeScript y SQLite en la app móvil.
Cómo se conectan panel, sitio cliente y app móvil Mostrar más
- Panel administrativo es la pieza coordinadora: define proyectos, asigna técnicos y ayudantes a turbinas, y consolida reportes diarios y procesos.
- Sitio cliente lee del mismo flujo operativo, así que el cliente ve avance y evidencias reales, no resúmenes manuales.
- App móvil es la herramienta que ejecutan los técnicos en campo. Recibe del panel sus permisos (proyecto, turbina, rol) y devuelve evidencias y reportes que terminan visibles en panel y sitio cliente.
Panel administrativo: cómo organiza al equipo técnico Mostrar más
- Proyectos como contenedor de trabajo. Cada servicio a un parque eólico se modela como proyecto, con sus turbinas, técnicos, ayudantes y procesos asociados.
- Asignación de equipo y roles. El panel define quién entra como Técnico, quién como Ayudante, y a qué proyecto y turbina está habilitado.
- Procesos y evidencias por turbina. Cada turbina tiene sus inspecciones, daños, palas y evidencias asociadas, todo trazable.
- Avance y reportes. El panel consolida reportes diarios y procesos completados para tener visibilidad operativa real, no estimaciones.
- Permisos por módulo y vista. Solo quien debe coordinar ve coordinación; solo quien debe operar ve operación.
Sitio cliente: visibilidad para el cliente final Mostrar más
- Vista de servicios contratados. El cliente entra a su zona privada y ve los servicios activos sobre sus turbinas.
- Avance real, no reportes maquillados. La información proviene del mismo flujo que ejecuta el equipo técnico, sin desfase entre lo reportado y lo ejecutado.
- Evidencias verificables. Las fotos de campo llegan al cliente con su contexto (proyecto, técnico, turbina, evidencia, fecha) gracias al watermark embebido desde la app.
- Cierre y entregables. El cliente accede a los entregables consolidados sin esperar correos ni archivos sueltos.
App móvil: qué hace en campo Mostrar más
- Herramienta oficial del equipo técnico para inspecciones, mantenimientos y reporte diario, construida en Expo + React Native + TypeScript.
- Roles dentro de la app: Técnico (procesos sobre turbina) y Ayudante (reporte diario), con cambio de rol controlado y bloqueado offline.
- Captura de evidencias desde cámara y galería, con watermark embebido (proyecto, técnico, turbina, evidencia y fecha) generado completamente offline.
- Firma digital integrada en pantalla y generación de documentos de cierre.
- Autenticación biométrica para evitar reabrir sesión completa cada turno.
- Selector de proyecto y turbina que respeta los permisos definidos en el panel.
Sincronización offline-first Mostrar más
La app está pensada para parques eólicos sin conectividad estable. Por eso:
- Persistencia local en SQLite con un mutex propio para serializar escrituras y evitar bloqueos cuando hay múltiples flujos activos.
- Cola de sincronización con trabajos procesados por lotes acotados y debounce, para no saturar el dispositivo ni el servidor.
- Control de sesión: la cola solo corre cuando hay sesión válida y token vigente.
- Clasificación de errores:
- Reintentables: red caída, timeouts y errores transitorios del servidor.
- Bloqueantes: payload inválido o errores de validación; el trabajo se bloquea y la cola sigue avanzando.
- Resultado visible: un elemento con problema nunca atora toda la cola, las fotos no se pierden y el técnico puede seguir trabajando aunque no haya señal.
Reglas de negocio críticas Mostrar más
- Un rol activo a la vez. El usuario opera bloqueado dentro del rol que eligió al iniciar sesión.
- Cambio de rol explícito y con conexión. No hay cambio automático: requiere acción del usuario y conexión a internet.
- Datos pendientes antes de cambiar. Si hay sincronizaciones pendientes, la app intenta enviarlas; si no es posible, el usuario debe confirmar el descarte con acción explícita.
- No se mezclan datos entre roles. Al cambiar de rol se limpia el contexto local del rol anterior.
- Evidencias siempre con contexto. Toda foto que llega al servidor lleva el watermark generado desde datos locales, así no se desligan del proyecto y de la turbina.
Detalles técnicos del ecosistema Mostrar más
- Panel y sitio cliente: PHP, Vue/JavaScript, MySQL y APIs REST sobre el mismo backend para mantener una sola fuente de datos.
- App móvil: Expo, React Native, TypeScript, SQLite, manipulación de imágenes para watermarking, firma digital en pantalla y autenticación biométrica.
- Generación de evidencias con watermark embebido en la imagen final antes de subir, para que la prueba sea auto-suficiente.
- Resiliencia operativa: validaciones por capa, mutex para concurrencia local, retry con backoff y guardas anti-loop.