APP Volumen Celdas

Manual Completo de Arquitectura, Roles, Navegación y Pruebas

Version 1.7.0 (Producción)

Funcionalidades y Capacidades de la Aplicación

Este manual describe el funcionamiento detallado de la aplicación móvil de control de volumen en celdas, detallando sus características de rendimiento, seguridad y usabilidad en terreno.

Área Operativa Funcionalidades Implementadas en el Sistema (v1.7.0)
Ejecución y Distribución Distribución independiente mediante APK nativa de alto rendimiento. Ejecución libre sin requerimientos de licenciamiento premium de plataformas externas, permitiendo un despliegue masivo y flexible.
Operación Sin Conexión Disponibilidad operativa del 100% en zonas remotas del relleno mediante una cola local de registros que guarda los datos de forma segura sin señal y realiza una autosincronización automática una vez restaurada la conexión.
Facilidad de Uso en Terreno Interfaz táctil optimizada para operarios de terreno con selector visual de nombres y avatars grandes, evitando escrituras manuales complejas de cuentas o contraseñas en teclados pequeños de dispositivos móviles.
Seguridad, Acceso e Identidad Se implementa un Control Estricto de Acceso Individual por Nombre de Usuario y Contraseña. A diferencia de flujos de trabajo anteriores donde cualquier persona podía ingresar lecturas de forma anónima o compartida, ahora el sistema garantiza la trazabilidad operativa obligando a cada operador a autenticarse y cambiar su contraseña inicial, registrando de forma exacta y segura la autoría de cada medición.
Autonomía del Dueño del Proceso Incorporación de los nuevos Menús de Configuración de Celdas y Ajuste de Fórmulas Matemáticas. Esta innovación otorga total autonomía editorial y operativa al dueño del proceso (Administrador), quien puede dar de alta nuevas celdas, dar de baja celdas obsoletas y ajustar parámetros de cálculo de forma directa en la aplicación sin depender del Ingeniero en Gestión de Operaciones. Asimismo, establece una autoridad de trazabilidad indiscutible, permitiendo auditar con precisión quién, cuándo y por qué se alteró la estructura matemática del modelo de celdas.
Política de Edición y Cierre de Libro La facultad de editar o corregir lecturas del historial está regulada bajo estrictos bloqueos de tipo "Cierre de Libro". Estos cierres son inyectados y cargados de manera automática en la base de datos centralizada por un bot externo a la aplicación los días miércoles y viernes a las 23:00 horas. Una vez que el bot bloquea una celda por cierre de libro, se restringe físicamente cualquier edición a sus registros históricos desde la app móvil para salvaguardar la inmutabilidad y consistencia de los reportes.
Validación Preventiva de Datos Cálculo matemático automático en el mismo dispositivo de revancha, área, volumen y delta de desvío al ingresar mediciones. Alertas visuales críticas en pantalla si la diferencia supera los 500 m³, desviando automáticamente el registro al panel de aprobación para auditoría.
Módulo de Aprobación Móvil Bandeja de alertas móviles y responsive para supervisores con funcionalidad táctil de deslizamiento (Swipe-to-Approve) para validar desvíos operacionales y corregir datos directamente desde la aplicación.
Optimización de Rendimiento Velocidad de respuesta instantánea al abrir e interactuar con la aplicación, asegurando un consumo mínimo de batería y una navegación fluida en terreno.

1. Diagrama de Casos de Uso

Acciones que pueden realizar los Operadores, Supervisores y Administradores en el ecosistema de la app (diagrama interactivo y vectorial en tiempo real):

flowchart LR classDef actor fill:#1c2833,stroke:#00e5ff,stroke-width:2px,color:#fff; classDef usecase fill:#1f3a52,stroke:#00e5ff,stroke-width:1px,color:#fff; classDef sheet fill:#145a32,stroke:#2ecc71,stroke-width:2px,color:#fff; classDef adminusecase fill:#512e5f,stroke:#af7ac5,stroke-width:1px,color:#fff; Operator["Operador de Celda"]:::actor Supervisor["Supervisor"]:::actor Admin["Administrador"]:::actor UC_Login("Autenticarse y Cambiar Clave Obligatoria"):::usecase UC_Logout("Cerrar Sesión Seguro"):::usecase UC_ViewCells("Visualizar Celdas Permitidas"):::usecase UC_EnterReadings("Ingresar Lectura cm"):::usecase UC_OfflineQueue("Sincronizar Cola Offline"):::usecase UC_ViewHistory("Visualizar Historial 20 días"):::usecase UC_ValidateAlerts("Validar Alertas mayor a 500 m³"):::usecase UC_EditReadings("Corregir Registros en Historial"):::usecase UC_ManageCells("Crear o Editar Maestro Celdas"):::adminusecase UC_ManageCalcs("Configurar Métodos de Cálculo"):::adminusecase UC_ManageBlocks("Bloquear Fechas Operacionales"):::adminusecase DB_Users[("Base de Datos: Usuarios")]:::sheet DB_Cells[("Base de Datos: maestro_celdas")]:::sheet DB_Calcs[("Base de Datos: config_calculos")]:::sheet DB_Regs[("Base de Datos: registros")]:::sheet DB_Alerts[("Base de Datos: registros_alerta")]:::sheet DB_Blocks[("Base de Datos: configuracion_bloqueo")]:::sheet Operator --> UC_Login Operator --> UC_Logout Operator --> UC_ViewCells Operator --> UC_EnterReadings Operator --> UC_ViewHistory Operator --> UC_OfflineQueue Supervisor --> UC_Login Supervisor --> UC_Logout Supervisor --> UC_ViewCells Supervisor --> UC_EnterReadings Supervisor --> UC_ViewHistory Supervisor --> UC_ValidateAlerts Supervisor --> UC_EditReadings Admin --> UC_Login Admin --> UC_Logout Admin --> UC_ViewCells Admin --> UC_EnterReadings Admin --> UC_ViewHistory Admin --> UC_ValidateAlerts Admin --> UC_EditReadings Admin --> UC_ManageCells Admin --> UC_ManageCalcs Admin --> UC_ManageBlocks UC_Login -.-> DB_Users UC_ViewCells -.-> DB_Cells UC_ViewCells -.-> DB_Blocks UC_EnterReadings -.-> DB_Calcs UC_EnterReadings -.-> DB_Regs UC_EnterReadings -.-> DB_Alerts UC_OfflineQueue -.-> DB_Regs UC_ViewHistory -.-> DB_Regs UC_ValidateAlerts -.-> DB_Alerts UC_ValidateAlerts -.-> DB_Regs UC_EditReadings -.-> DB_Regs UC_ManageCells -.-> DB_Cells UC_ManageCalcs -.-> DB_Calcs UC_ManageBlocks -.-> DB_Blocks

2. Matriz de Roles y Permisos

Control de acceso dinámico mapeado desde el módulo de seguridad. Determina qué pantallas puede ver cada usuario y en qué áreas tiene autorizado registrar:

Usuario Rol Operaciones RSU CITA Caudalímetro Modificó Clave Crear Registro Validar Registro Editar Registro Editar Celda Editar Cálculo
Victor Cortes OperadorCelda SI NO NO NO SI SI NO NO NO NO
Luis Becerra OperadorCelda SI NO NO NO NO SI NO NO NO NO
TestOP OperadorCelda NO SI SI NO SI SI NO NO NO NO
William Silva OperadorCelda NO SI SI SI NO SI SI SI SI SI
Carlos Orellana Supervisor NO SI SI SI NO SI SI SI NO SI
Camilo Merino Auditor NO NO NO NO NO NO NO NO NO NO
Arturo Barrientos Administrador SI SI SI SI SI SI SI SI SI SI
Nicolas Cayul OperadorCelda SI SI SI SI NO SI SI SI NO SI

3. Viajes de Usuario (Flujos Operativos)

Flujo A: El Operador de Celdas (Día a Día en Terreno)

Muestra el viaje paso a paso de un operador para ingresar mediciones y la lógica de validación instantánea en terreno:

flowchart TD classDef startNode fill:#1a3d54,stroke:#00e5ff,stroke-width:2px,color:#fff; classDef stepNode fill:#223e59,stroke:#00e5ff,stroke-width:1px,color:#fff; classDef decisionNode fill:#b7950b,stroke:#f1c40f,stroke-width:2px,color:#fff; classDef actionNode fill:#145a32,stroke:#2ecc71,stroke-width:1px,color:#fff; classDef dangerNode fill:#7b241c,stroke:#e74c3c,stroke-width:1px,color:#fff; Start([Inicio de Turno]):::startNode --> Login[Pantalla de Login]:::stepNode Login --> SelectOp[Presiona Seleccionar Operador]:::stepNode SelectOp --> PanelOp[Abre panel inferior con avatars]:::stepNode PanelOp --> TapOp[Toca su nombre en la lista]:::stepNode TapOp --> Fill[Autocompleta nombre de usuario]:::stepNode Fill --> Pass[Ingresa clave con ojo de visibilidad]:::stepNode Pass --> Auth{Clave Inicial}:::decisionNode Auth -->|Si / Credencial Modificada: NO| Reset[Pantalla Cambio Clave Obligatorio]:::stepNode Reset --> NewPass[Establece nueva contraseña y guarda]:::actionNode NewPass --> Home Auth -->|No| Home[Dashboard HomeScreen]:::stepNode Home --> Filter[Visualiza solo pestañas autorizadas RSU-CITA-OPERACIONES]:::stepNode Filter --> TapCell[Selecciona Celda para medir]:::stepNode TapCell --> BlockCheck{Fecha Bloqueada}:::decisionNode BlockCheck -->|Si| AlertBlock[Muestra candado rojo y bloquea escritura]:::dangerNode BlockCheck -->|No| Entry[EntryScreen - Ingreso Lectura]:::stepNode Entry --> Formula[Calcula revancha, área, volumen y delta]:::stepNode Formula --> DevCheck{Desviación mayor a 500 m³}:::decisionNode DevCheck -->|Si / Alerta Crítica| WarnAlert[Banner crítico - Guarda en registros_alerta]:::dangerNode DevCheck -->|No / Normal| DirectSave[Guarda directo en base de datos registros]:::actionNode WarnAlert --> Back[Retorno automático al Dashboard]:::stepNode DirectSave --> Back Back --> Logout[Presiona Cerrar Sesión / Cambio Turno]:::stepNode Logout --> ResetNav[Limpia credenciales y vuelve seguro a Login]:::startNode
Flujo B: El Supervisor / Administrador (Validación e Historial)

Viaje paso a paso del supervisor para auditar, corregir e interactuar con la bandeja de desvíos móviles:

flowchart TD classDef startNode fill:#4a235a,stroke:#bb8fce,stroke-width:2px,color:#fff; classDef stepNode fill:#223e59,stroke:#00e5ff,stroke-width:1px,color:#fff; classDef decisionNode fill:#b7950b,stroke:#f1c40f,stroke-width:2px,color:#fff; classDef actionNode fill:#145a32,stroke:#2ecc71,stroke-width:1px,color:#fff; classDef dangerNode fill:#7b241c,stroke:#e74c3c,stroke-width:1px,color:#fff; Start([Menú Principal - Admin/Super]):::startNode --> MenuPanel[Visualiza Módulos Habilitados]:::stepNode MenuPanel -->|1. Registrar Volumen Celda| ScreenHome[HomeScreen - Dashboard Completo]:::stepNode MenuPanel -->|2. Validar Alertas| ScreenValidation[ValidationScreen - Carrusel Alertas]:::stepNode ScreenValidation --> Swipe{Acción en Tarjeta}:::decisionNode Swipe -->|Swipe Derecho / Aprobar| Approve[Se promueve a registros con su firma]:::actionNode Swipe -->|Swipe Izquierdo / Rechazar| Reject[Se marca como RECHAZADO en registros_alerta]:::dangerNode MenuPanel -->|3. Auditoría de Registros| ScreenHistory[HistoryScreen - Historial 20 Días]:::stepNode ScreenHistory --> ColorCheck{Registro Editable}:::decisionNode ColorCheck -->|Verde / Si| EditForm[Presiona CORREGIR - Abre EntryScreen]:::stepNode EditForm --> SaveEdit[Guarda edición con firma e ID_Anterior en registros]:::actionNode ColorCheck -->|Naranja / Bloqueado por Fecha o Plazo| Locked[Deshabilita edición]:::dangerNode MenuPanel -->|4. Editar Maestro Celdas| ScreenMaster[CellMasterScreen - Registro Celdas]:::stepNode ScreenMaster --> SaveMaster[Guarda nueva versión de celda en maestro_celdas]:::actionNode MenuPanel -->|5. Configurar Cálculo| ScreenCalcs[CalcConfigScreen - Gestión Fórmulas]:::stepNode ScreenCalcs --> SaveCalcs[Guarda nueva regla de cubicación en config_calculos]:::actionNode Approve --> BackMenu[Retorna al Menú de Gestión]:::stepNode Reject --> BackMenu SaveEdit --> BackMenu SaveMaster --> BackMenu SaveCalcs --> BackMenu BackMenu --> Logout[Cerrar Sesión / Cambio de Turno]:::stepNode Logout --> Exit[Limpia caché de sesión y vuelve nativo al Login]:::startNode
Configuración y Autonomía del Dueño del Proceso (Administrador)

Interfaces exclusivas del Administrador para el ABM del maestro de celdas físicas y el control matemático del modelo sin dependencia de TI:

4. Árbol de Navegación y Flujo de Pantallas

Transiciones de pantallas y validaciones de seguridad en alta definición (con datacards de alta legibilidad, letras oscuras en negrita y cápsulas definidas):

flowchart TD classDef root fill:#1b4f72,stroke:#00e5ff,stroke-width:3px,color:#fff; classDef screen fill:#1a252f,stroke:#5dade2,stroke-width:1px,color:#fff; classDef popNode fill:#196f3d,stroke:#58d68d,stroke-width:1px,color:#fff; classDef securityNode fill:#7b241c,stroke:#e74c3c,stroke-width:2px,color:#fff; Root([VolCeldaApp - main.dart]):::root Root --> SecurityCheck{Filtro de Arranque}:::securityNode SecurityCheck -->|Sesión inactiva| Login[LoginScreen]:::screen SecurityCheck -->|Sesión activa y Requiere Clave| ChangePass[ChangePasswordScreen]:::screen SecurityCheck -->|Sesión activa y Operador| Home[HomeScreen - Dashboard]:::screen SecurityCheck -->|Sesión activa y Supervisor/Admin| Menu[MenuInicialScreen - Gestión]:::screen Login -->|Taps Seleccionar Operador| BottomSheet[ModalBottomSheet - Avatars Operadores]:::screen Login -->|Taps Ojo Contraseña| EyeAction[Alterna visibilidad de caracteres]:::popNode Login -->|Iniciar Sesión - Operador| Home Login -->|Iniciar Sesión - Admin/Super| Menu ChangePass -->|Actualizar Contraseña| UpdatePassAction[Guarda en base de datos Usuarios y va a pantalla por Rol]:::popNode Home -->|Tabs de Filtros| TabsAction[Oculta pestañas no permitidas RSU-CITA-OPERACIONES]:::popNode Home -->|Offline Queue Icon| SyncAction[Sincroniza registros en cola local con la nube]:::popNode Home -->|Icono Historial| History[HistoryScreen - Historial 20 Días]:::screen Home --->|Icono Logout| LogoutAction[state.logout y pushAndRemoveUntil de vuelta a Login]:::securityNode Home --->|Floating Action Button - Solo Admin/Super| Menu Home -->|Tap en tarjeta de Celda Desbloqueada| Entry[EntryScreen - Formulario]:::screen Menu --->|CERRAR SESIÓN| LogoutAction Menu --->|Registrar Volumen Celda| Home Menu -->|Auditoría de Registros| History Menu -->|Validar Alertas| Validation[ValidationScreen - Control Alertas]:::screen Menu -->|Editar Maestro de Celdas| CellMaster[CellMasterScreen - ABM Celdas]:::screen Menu -->|Editar Cálculo| CalcConfig[CalcConfigScreen - Fórmulas]:::screen Entry -->|Guardar Lectura| PopHome[Escribe en registros o registros_alerta y hace pop a HomeScreen]:::popNode History -->|Presiona CORREGIR| Entry Validation -->|Swipe Rechazar| RejectAction[Rechaza y actualiza estado de alerta]:::popNode Validation -->|Swipe Aprobar| ApproveAction[Mueve alerta a registros como VALIDADO]:::popNode CellMaster -->|Guardar Maestro| PopMenu[Escribe fila maestro_celdas y hace pop]:::popNode CalcConfig -->|Guardar Configuración| PopMenu
Flujo Lógico de Pantallas:
🔹
Inicio App: Valida el estado de la sesión local y ejecuta medidas exclusivas de inicio.
🔹
LoginScreen: El usuario selecciona su nombre desde un menú táctil interactivo y digita su contraseña de forma segura.
🔹
ChangePasswordScreen: Fuerza la actualización obligatoria de contraseña si el operador utiliza la clave por defecto de primer ingreso.
🔹
HomeScreen (Operador): Accede directamente al listado táctil de celdas para su respectivo filtrado y registro de cm en terreno.
🔹
MenuInicialScreen (Supervisor/Admin): Panel de control centralizado con acceso a los distintos módulos habilitados según su nivel de permisos:
Registro directo de Volumen en terreno (HomeScreen).
Historial e Auditoría completa de Mediciones (HistoryScreen) para la revisión de los últimos 20 días.
Bandeja de Validación de Alertas de Desvío (ValidationScreen) con controles táctiles de deslizamiento.
Módulo de Gestión y Alta/Baja de Celdas (CellMasterScreen) para el control del maestro.
Módulo de Configuración de Fórmulas Matemáticas (CalcConfigScreen) para el control directo de los parámetros de cubicación.