- TypeScript 94.9%
- JavaScript 5.1%
| .vscode | ||
| app | ||
| assets/images | ||
| builds | ||
| components | ||
| constants | ||
| docs | ||
| hooks | ||
| scripts | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| app.json | ||
| eas.json | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
VerbenaTracker
Aplicacion movil Expo/React Native para tracking GPS Android de repartidores y operadores de Floreria La Verbena.
VerbenaTracker separa la operacion diaria del repartidor de la configuracion tecnica de la app. La pantalla principal esta orientada a iniciar/detener seguimiento, enviar ubicacion, registrar entregas y emergencias. La configuracion de webhook, token, intervalo, precision y contrasena queda protegida por clave.
Estado del Proyecto
- Framework: Expo SDK 54.
- Lenguaje: TypeScript.
- Navegacion: Expo Router con carpeta
app/. - Persistencia: AsyncStorage.
- GPS:
expo-location. - Background task:
expo-task-manager. - HTTP: Axios.
- Build Android: EAS con perfil
preview. - Ruta de trabajo actual:
C:\Codex\VerbenaTracker.
Documentacion
- Arquitectura
- Guia de operacion
- Configuracion de parametros
- Webhook n8n y payload
- Seguridad
- Desarrollo y build
- Troubleshooting
Pantallas
Operacion
Pantalla diaria para el repartidor:
- Estado del tracking.
- Operador y dispositivo.
- ID de pedido actual editable.
- Estado de permisos GPS.
- Estado resumido de conexion.
- Ultima ubicacion.
- Ultimo envio exitoso.
- Eventos pendientes.
- Ultimo error.
- Acciones: iniciar, detener, enviar ubicacion, entrega realizada y emergencia.
Configuracion
Pantalla protegida por contrasena:
- Operador.
- ID de dispositivo.
- Webhook n8n.
- API Key o token Bearer.
- Intervalo de envio.
- ID de pedido por defecto.
- Modo desarrollo para permitir
http://. - Precision GPS.
- Distancia minima.
- Auto-reinicio al reabrir.
- Cambio de contrasena.
Valores por Defecto
- Webhook:
https://sistemas.florerialaverbena.cl/webhook/bbf950a9-bb13-4607-8eea-ab60a0c94639. - Intervalo de envio: 90 segundos.
- Intervalo minimo: 30 segundos.
- Precision: balanceada.
- Cola offline maxima: 500 eventos.
- Contrasena inicial:
Verbena2026!.
La contrasena inicial debe cambiarse antes de usar la app en produccion.
Instalacion
npm install
Ejecucion
npx expo start
Para ejecutar con proyecto nativo Android:
npm run android
Validacion
npx tsc --noEmit
npm run lint
npx expo-doctor
En Expo SDK 54, npx expo doctor puede no estar soportado por el CLI local y puede indicar usar npx expo-doctor.
Build APK
eas build -p android --profile preview
Payload al Webhook
{
"device_id": "string",
"operator_name": "string",
"order_id": "string|null",
"lat": 0,
"lon": 0,
"accuracy": null,
"altitude": null,
"speed": null,
"heading": null,
"battery": null,
"event": "location_update",
"timestamp": "2026-05-05T12:00:00.000Z",
"app": "VerbenaTracker",
"source": "mobile_gps"
}
Eventos: tracking_started, location_update, manual_location, delivery_done, emergency, tracking_stopped.
Limitaciones Android
Android puede pausar o finalizar servicios background por ahorro de bateria, restricciones del fabricante, cierre forzado manual o permisos revocados. VerbenaTracker usa mecanismos permitidos por Expo/Android con servicio foreground y no implementa tecnicas agresivas.
Para pruebas reales, usar dispositivo Android fisico y permitir ubicacion en segundo plano.