automatizaesto
AgroFieldField Intelligence Platform
Arquitectura de datos

Cómo se gestionan los datos:
del Excel a la nube

AgroField ya migró de un Excel en OneDrive a una base de datos real en la nube (Supabase). Aquí el modelo actual implementado, comparado con el modelo anterior del MVP.

MODELO ANTERIOR · MVP

OneDrive + Excel

La app móvil leía y escribía directamente sobre un archivo de Excel en OneDrive (API de Microsoft Graph). Fue el modelo del MVP inicial, ya reemplazado por Supabase.

Captura
📱
App móvil
El técnico registra visitas, conteos y calidad en campo
Autenticación
🔐
Login Microsoft
MSAL · token OAuth de la cuenta corporativa
Transporte
🔌
Microsoft Graph API
Lee/escribe celdas del libro de Excel
Almacén
📊
Excel en OneDrive
BD_AgroField.xlsx · 8 hojas como "tablas"

Cada hoja del Excel actúa como una tabla, pero sin relaciones reales entre ellas: el vínculo productor↔visita es solo texto copiado.

📁 Estructura actual del archivo BD_AgroField_OneDrive.xlsx
PRODUCTORES
VISITAS_ASISTENCIA
CONTEO_FRUTOS
LIBRO_CAMPO
CONTROL_CALIDAD
TECNICOS
LISTAS
DASHBOARD_GERENCIAL
ID_Visita
Nombre_Productor
Cultivo
Estado
VIS-001
Carlos Mendoza
Palto
Completada
VIS-002
Rosa Simbana
Arandano
Completada
VIS-003
carlos mendoza
Palta
En Proceso

Problema típico: el nombre y el cultivo se escriben como texto libre → "carlos mendoza" vs "Carlos Mendoza", "Palto" vs "Palta " (con espacio). Datos duplicados e inconsistentes que rompen los reportes.

Ventajas

  • +Costo casi cero (ya tienen Microsoft 365)
  • +Rápido de montar: ideal para validar el MVP
  • +El cliente puede abrir y ver los datos en Excel
  • +Sin servidores que administrar

Limitaciones

  • Sin integridad: datos duplicados e inconsistentes
  • No hay relaciones reales entre hojas
  • Lento y frágil con miles de registros
  • Conflictos si dos técnicos escriben a la vez
  • Sin modo offline robusto ni control de permisos fino
✓ EN PRODUCCIÓN HOY

Supabase · PostgreSQL + Storage

La app está conectada a una base de datos relacional en la nube (Supabase). Captura offline en una base local SQLite y sincroniza sola al reconectar; las fotos van a Storage. Validado en dispositivo real.

Captura
📱
App móvil
Con base local SQLite para trabajar sin señal
Sincronización
🔄
Cola de sync
Sube los registros al recuperar conexión
Servicio
⚙️
Supabase API + RLS
REST automática con seguridad por filas (RLS)
Almacén
🗄️
Postgres + Storage
Tablas relacionadas + fotos en la nube (Storage)

Se puede exportar a Excel/PDF cuando se necesite — el cliente no pierde el reporte en Excel, solo deja de ser la base de datos.

🗄️ Modelo entidad-relación propuesto
🌱 cultivos
codigo 🔑PK
nombreunique
iconotext
activobool
👤 productores
id_productor 🔑PK
nombretext
cod_cultivo ↗FK
hectareasnum
🧑‍🌾 tecnicos
id_tecnico 🔑PK
nombretext
rolenum
📋 visitas
id_visita 🔑PK
id_productor ↗FK
cod_cultivo ↗FK
id_tecnico ↗FK
gps, fecha…
🌳 conteo_frutos
id_conteo 🔑PK
id_visita ↗FK
buenos, total…int
🔬 control_calidad
id_calidad 🔑PK
id_visita ↗FK
brix, calibre…num
🔑 PK — identificador único ↗ FK — relación a otra tabla
-- El catálogo que gestiona el administrador (tu pedido del código de cultivo) CREATE TABLE cultivos ( codigo VARCHAR(10) PRIMARY KEY, -- CUL-001 nombre VARCHAR(60) NOT NULL UNIQUE, activo BOOLEAN DEFAULT true ); CREATE TABLE visitas ( id_visita VARCHAR(20) PRIMARY KEY, id_productor VARCHAR(20) REFERENCES productores(id_productor), cod_cultivo VARCHAR(10) REFERENCES cultivos(codigo) -- ← relación, no texto );

Si el admin renombra "Palto" → "Palta Hass", cambia en un solo lugar y se refleja en todas las visitas. Imposible registrar un cultivo que no existe en el catálogo.

Ventajas

  • +Integridad referencial: cero datos huérfanos o duplicados
  • +El admin gestiona catálogos (cultivos, técnicos) por código
  • +Modo offline real + sincronización confiable
  • +Roles y permisos (campo / supervisor / admin)
  • +Escala a millones de registros sin perder velocidad
  • +Reportes y exportación a Excel/PDF cuando se requiera

A considerar

  • Costo mensual de hosting (bajo: ~USD 0–25/mes inicial)
  • Migración de los datos existentes del Excel (one-time)
  • El cliente ya no edita la "BD" directo en Excel

Comparación lado a lado

Los dos modelos, frente a frente, en los criterios que importan.

Criterio📁 OneDrive + Excel (antes)☁️ Supabase (ahora)
Integridad de datosTexto libre, propenso a erroresGarantizada por claves foráneas
Relaciones entre datosInexistentes (texto copiado)Reales y validadas
Catálogo de cultivosLista de texto en hoja LISTASTabla con código (PK) editable por admin
Modo offlineLimitado / frágilNativo con cola de sincronización
Usuarios simultáneosConflictos de escrituraConcurrencia segura
Roles y permisosNoSí (campo / supervisor / admin)
Volumen de datosCientos de filasMillones de registros
CostoIncluido en Microsoft 365~USD 0–25/mes al inicio
Ideal paraMVP y validaciónProducto comercial y escala

Migración ejecutada

Así se llevó AgroField del Excel a Supabase, sin interrumpir la operación.

✓ PASO 01

Diseño del modelo

Se definieron tablas, relaciones y catálogos a partir del Excel original.

✓ PASO 02

Backend en Supabase

Postgres + Storage en la nube, con seguridad por filas (RLS).

✓ PASO 03

App offline + sync

Base local SQLite y cola de sincronización —validado en dispositivo.

PASO 04 · próximo

Reportes (Fase 3)

Dashboards y exportación a Excel/PDF para gerencia.