Avance construido — primer bloque de trabajo
Informe del estado del sistema tras el bloque mensual de horas trabajadas y abonado.
Resumen del alcance de este bloque
Se estableció la base del sistema: backend con modelo de datos y seguridad definidos, el panel administrativo operativo (backoffice) y la landing pública con acceso por QR. Este es el cimiento sobre el cual se construirán los módulos de análisis de plantas, la app cliente y los reportes de gestión.
1. Backend — PocketBase (base)
Base de datos versionada en migraciones, 10 colecciones, con modelo de seguridad operativo por tenencia de grupo.
- admin_groups, users (extendida): login por username/email, teléfono en E.164, rol de administrador y vinculación a grupo. Reglas que limitan la visibilidad a la data del propio grupo.
- places, sub_places: lugares con dirección geocodificada, coordenadas, tipo, horario de atención y perfil climático. Sub-unidades con plano ortogonal (plan_image) y escala de marcadores.
- plant_types: catálogo público con nombre común, nombre científico y galería de fotos (con thumbnails).
- plants: inventario con código único, lugar actual y lugar de alta (inmutable). Posibilidad de ubicación dentro del plano.
- plant_locations: posición exacta de cada planta dentro de un plano (x/y normalizados), condiciones de luz y notas. Relación 1:1 con la planta.
- transfers: histórico de vida de cada planta con los movimientos previstos: alta (acquire), traslado, reubicación (con registro de cambio de condiciones), préstamo (con fecha de devolución) e intercambio (entre dos plantas, atómico).
- plant_identifiers: códigos públicos (por ejemplo PLT-xxxxxxxx) que enlazan la landing y la app cliente con la ficha de cada planta.
- landing_settings: configuración pública editable del sitio (número de contacto).
El backend ya responde, el modelo ya valida lo construido hasta ahora.
2. Backoffice — panel administrativo (operativo)
React 19 + Vite + TanStack Router. El panel está funcional end-to-end para cargar y operar el inventario:
- Acceso: login por username, sesión con duración definida.
- Dashboard: indicadores de carga de plantas, grupos y ubicaciones.
- Grupos administrativos: crédito y edición de cuentas (teléfono validado) y lugares.
- Lugares: alta con autocompletado de direcciones (Nominatim), geocodificación automática, generación del perfil climático (Open-Meteo, 5 años) y descarga en cascada de las sub-unidades.
- Planos de sub-unidades: visualización del plano, carga y recorte de imágenes, arrastre de plantas al plano, reposicionamiento de marcadores, edición de condiciones de luz (con obligación de registrar motivo) y ajuste de escala.
- Plantas: alta asistida (especie → grupo → unidad → sub-unidad) con generación automática del código; inventario con filtros, selección múltiple y paginación; generación de plantilla de códigos QR imprimibles.
- Ficha de planta: ubicación actual en el plano, condiciones de luz, lugar de alta histórico, historial de vida (transfers) y acciones (trasladar, reubicar, préstamo, devolver, intercambio) que registran cada movimiento.
- Tipos de planta: catálogo con búsqueda y galería de fotos.
- Landing: configuración de contacto público.
Todo lo del backoffice se conecta al backend con reglas que respetan la tenencia de grupo: un administrador solo ve su grupo, a menos que sea super-admin.
3. Landing pública (online)
Sitio Astro que consume el backend y sirve la cara pública del producto:
- Homepage institucional de la marca con propuesta de valor y secciones de beneficios y público objetivo.
- Página de planta por QR: acceso público a la ficha de cada especie mediante su código (
/{planta}/{codigo}), con resolución en el servidor, manejo de estados (activo, inactivo, no encontrado — 404 real) y salida a WhatsApp. - WhatsApp de contacto configurable desde el panel.
4. App cliente — estado actual
Aplicación base generada (Expo 57) con su configuración de branding, iconos y splash. El scaffolding está presente y compila, pero aún no contiene las pantallas ni la integración con el backend. Este es el próximo bloque a desarrollar para habilitar la operación diaria de los usuarios finales.
Estado de la base construida
- Backend con modelo de datos y seguridad operativa
- Panel administrativo (backoffice) con carga y operación de inventario
- Landing pública con acceso por QR
- App cliente con escaneo de QR y ficha de planta (pendiente)
- Reportes de gestión y análisis de plantas (pendiente)
- Soporte y herramientas operativas (pendiente)
La base está terminada y sirve para seguir. El sistema actual ya permite administrar el inventario completo desde el backoffice y consultar especies públicamente por QR.
Próximos bloques de horas
Con la base entregada, los bloques de trabajo futuros progresan sobre este cimiento:
- App cliente con escaneo de QR, ficha de planta y flujo de usuario.
- Análisis de plantas y condiciones de cultivo.
- Reportes de gestión, historial y soporte.
Este informe cierra el bloque mensual abonado. La continuidad del desarrollo requiere el próximo bloque de horas.