====== PAE - Visión general ====== ===== Objetivo del proyecto ===== PAE es un proyecto móvil que conecta una aplicación de máquina (''Machine'') con una aplicación de operador de ruta (''RutaPAE''). El objetivo es permitir: * sincronización de entregas y datos de beneficiarios, * comunicación local entre máquina y operador sin depender únicamente de internet, * gestión de inventario y jornadas mediante P2P y backend HTTP. ===== Componentes principales ===== * ''Machine'': aplicación instalada en el dispositivo de máquina. * ''RutaPAE'': aplicación usada por el operador de ruta. * ''MachineData'' / ''RutaPAEData'': repositorios locales y entidades. * ''MachineDomain'' / ''RutaPAEDomain'': lógica del dominio, red y sincronización. * ''Contract'': contrato compartido entre ''Machine'' y ''RutaPAE'' para P2P. * ''DirectLink'': librería de conexión P2P basada en Wi-Fi Direct y hotspot. ===== Flujo general ===== - ''RutaPAE'' arranca y crea su gestor de dominio. - El gestor de dominio inicia P2P y comienza a descubrir pares. - Se detectan máquinas via P2P y/o hotspots. - El operador puede conectar a una máquina conocida o a una máquina descubierta. - Se sincronizan entregas, estados y configuración entre máquina y operador. ===== Módulos y responsabilidades ===== * ''Machine'': lógica de máquina, exposición de estado P2P, rutas de API local. * ''RutaPAE'': UI, descubrimiento de máquinas, ejecución de sincronizaciones y gestión de entregas. * ''MachineData'': utilidades locales para la máquina y creación de IDs temporales. * ''RutaPAEDomain'': implementación P2P específica de la app de ruta. * ''MachineDomain'': consumo de datos remotos HTTP y sincronización de jornadas de máquina. * ''Contract'': definiciones de paths, topics y modelos serializables usados por P2P. ===== Recomendación de lectura ===== - ''docs/overview.md'' - ''docs/machine-states.md'' - ''docs/endpoints.md'' - ''docs/p2p-architecture.md'' - ''docs/p2p-flow.md'' - ''docs/data-services.md''