Pular para conteúdo

Plataformas e Sincronização

  • Sigla: PLS (Plataformas e Sincronização)
  • Status:
  • ✅ Revisado
  • ✅ Aprovado

  • Implementação:

  • ⬜ Backend
  • ⬜ Frontend
  • ⬜ Mobile
  • ⬜ Backoffice

Legenda: ⬜ Pendente | ✅ Realizado | ⚠️ Ponto de atenção | ❌ Não se aplica

Descrição

O módulo de Plataformas e Sincronização é responsável por garantir o funcionamento do sistema BoiView em diferentes dispositivos e condições de conectividade, com foco especial na operação offline do aplicativo móvel e nos mecanismos de sincronização de dados. Este módulo fornece a infraestrutura técnica necessária para que os usuários de campo possam trabalhar mesmo em áreas rurais com conectividade limitada ou inexistente, mantendo a integridade e segurança dos dados durante todo o processo.

Escopo Inicial

  • Web responsiva para desktop e tablets
  • Aplicativo mobile para Android e iOS com modo offline
  • Persistência de sessão offline por até 48h
  • Sincronização bidirecional com resolução automática de conflitos
  • Mecanismos de segurança para dados armazenados localmente
  • Indicadores visuais de status de sincronização

Funcionalidades

  • Armazenamento local de dados no app móvel para operações sem conectividade
  • Banco de dados local criptografado no dispositivo até sincronização
  • Sincronização automática quando houver conexão com internet
  • Mecanismos de resolução de conflitos de sincronização
  • Indicadores visuais de status de sincronização (pendente, sincronizado, erro)
  • Captura e armazenamento de fotos, áudios e outros dados offline
  • Gerenciamento de login e autenticação em modo offline
  • Detecção automática de conectividade e transição suave entre modos
  • Priorização de dados para sincronização em conexões instáveis
  • Resumo das alterações sincronizadas para validação do gestor

Requisitos Funcionais

  • RF-PLS-001: O sistema deve permitir o uso do aplicativo móvel em modo offline com acesso a todas as funcionalidades essenciais.
  • Critério de aceitação: Usuários devem conseguir registrar atividades, ocorrências e movimentações mesmo sem conexão.
  • Prioridade: Alta
  • Dependência: Todos os módulos operacionais

  • RF-PLS-002: O sistema deve manter a sessão do usuário ativa em modo offline por até 48 horas.

  • Critério de aceitação: O usuário deve permanecer logado e com acesso aos dados mesmo sem conectividade por até 48h.
  • Prioridade: Alta
  • Dependência: Módulo de RBAC

  • RF-PLS-003: O sistema deve sincronizar automaticamente os dados quando a conexão for restaurada.

  • Critério de aceitação: A sincronização deve iniciar automaticamente quando o dispositivo detectar conexão disponível.
  • Prioridade: Alta
  • Dependência: Todos os módulos operacionais

  • RF-PLS-004: O sistema deve resolver conflitos de sincronização automaticamente, priorizando o dado mais recente.

  • Critério de aceitação: Em caso de conflito, o sistema deve aplicar regras predefinidas para determinar qual versão preservar.
  • Prioridade: Alta
  • Dependência: Todos os módulos operacionais

  • RF-PLS-005: O sistema deve exibir indicadores visuais claros do status de sincronização de cada registro.

  • Critério de aceitação: Os registros devem ser marcados como "pendente", "sincronizado" ou "erro".
  • Prioridade: Média
  • Dependência: Todos os módulos operacionais

  • RF-PLS-006: O sistema deve permitir a captura e armazenamento de fotos, áudios e documentos em modo offline.

  • Critério de aceitação: Mídia capturada offline deve ser armazenada localmente e sincronizada posteriormente.
  • Prioridade: Alta
  • Dependência: Módulos de Tarefas e Atividades

  • RF-PLS-007: O sistema deve fornecer um resumo das alterações sincronizadas para validação do gestor.

  • Critério de aceitação: Após a sincronização, um resumo dos dados enviados deve estar disponível para revisão.
  • Prioridade: Média
  • Dependência: Todos os módulos operacionais

  • RF-PLS-008: O sistema deve adaptar-se automaticamente a diferentes tamanhos de tela e orientações.

  • Critério de aceitação: A interface deve ser responsiva e funcional em dispositivos móveis, tablets e desktops.
  • Prioridade: Alta
  • Dependência: Todos os módulos com interface de usuário

Requisitos Não Funcionais

  • RNF-PLS-001: O banco de dados local deve ser criptografado para garantir a segurança dos dados offline.
  • Critério de aceitação: Os dados armazenados localmente devem utilizar criptografia AES-256 ou superior.
  • Prioridade: Alta

  • RNF-PLS-002: A sincronização deve priorizar dados críticos em conexões instáveis ou de baixa velocidade.

  • Critério de aceitação: Em conexões lentas, transações financeiras e movimentações de rebanho devem ser sincronizadas primeiro.
  • Prioridade: Alta

  • RNF-PLS-003: O aplicativo móvel deve consumir no máximo 200MB de armazenamento interno (excluindo dados e mídias).

  • Critério de aceitação: O tamanho do aplicativo instalado não deve exceder 200MB.
  • Prioridade: Média

  • RNF-PLS-004: O sistema deve otimizar o uso de dados móveis durante a sincronização.

  • Critério de aceitação: A sincronização completa não deve consumir mais de 20MB de dados por dia de uso típico.
  • Prioridade: Média

  • RNF-PLS-005: O tempo de inicialização do aplicativo não deve exceder 3 segundos em dispositivos de referência.

  • Critério de aceitação: O aplicativo deve iniciar e estar pronto para uso em no máximo 3 segundos.
  • Prioridade: Média

Regras de Negócio

  • RN-PLS-001: A resolução de conflitos durante a sincronização deve priorizar dados por timestamp, com preferência para a entrada mais recente.

  • RN-PLS-002: Em caso de conflito irreconciliável, o sistema deve preservar ambas as versões e notificar um administrador para resolução manual.

  • RN-PLS-003: O banco de dados local deve ser limpo após sincronização bem-sucedida, mantendo apenas dados necessários para operação offline.

  • RN-PLS-004: Após 48 horas sem sincronização, o sistema deve exigir reconexão e autenticação do usuário por motivos de segurança.

  • RN-PLS-005: Dados financeiros e movimentações de rebanho devem ser confirmados por um segundo usuário (gerente) após sincronização, quando registrados offline.

Critérios de Aceitação

  • CA-PLS-001: O aplicativo móvel deve funcionar em modo offline com todas as funcionalidades essenciais sem degradação significativa da experiência do usuário.

  • CA-PLS-002: A sincronização deve ocorrer automaticamente quando houver conexão disponível, com indicadores visuais claros do progresso e status.

  • CA-PLS-003: Conflitos de sincronização devem ser resolvidos automaticamente seguindo as regras de negócio, com taxa de sucesso de pelo menos 95% dos casos.

  • CA-PLS-004: Os dados devem permanecer seguros durante todo o ciclo de sincronização, com criptografia em repouso e em trânsito.

  • CA-PLS-005: O consumo de dados móveis durante a sincronização deve ser otimizado, não ultrapassando 20MB para um dia típico de uso.

  • CA-PLS-006: A interface deve ser responsiva e adaptável a diferentes dispositivos, funcionando adequadamente em telas de 4.5" até 13".

  • CA-PLS-007: O resumo pós-sincronização deve fornecer informações claras sobre as alterações realizadas offline, incluindo quantidades, tipos e período.

  • CA-PLS-008: O tempo de inicialização do aplicativo não deve exceder 3 segundos em dispositivos de referência, mesmo com dados armazenados localmente.

  • CA-PLS-009: O sistema deve manter a sessão ativa por até 48 horas em modo offline, com autenticação local segura.

  • CA-PLS-010: A transição entre modo online e offline deve ser transparente para o usuário, sem perda de dados ou interrupção das operações em andamento.

Dependências

  • Módulo de RBAC (para autenticação offline e controle de acesso local)
  • Módulo de Auditoria (para registro de operações offline e rastreabilidade após sincronização)
  • Módulo de Tenant (para informações de estrutura física das fazendas em operação offline)
  • Todos os módulos operacionais (para acesso aos dados essenciais em modo offline)

Integrações

Integrações que o módulo PLS SOLICITA de outros módulos:

  • Integração com Módulo de RBAC: Solicita informações de autenticação, permissões e perfil do usuário para operação em modo offline, incluindo cache de credenciais e controle de acesso local.

  • Integração com Módulo de Auditoria: Solicita registro de operações realizadas offline após sincronização, garantindo rastreabilidade completa mesmo de ações executadas sem conectividade.

  • Integração com Módulos Operacionais: Solicita dados essenciais para funcionamento offline, como rebanho, estoque, tarefas e informações financeiras relevantes para o usuário específico.

Integrações que o módulo PLS FORNECE para outros módulos:

  • Integração para todos os Módulos Operacionais: Fornece infraestrutura de sincronização bidirecional, permitindo que dados gerados em campo sejam integrados ao sistema central e que atualizações do sistema central cheguem aos dispositivos móveis.

  • Integração para Módulo de Dashboards e Relatórios: Fornece informações sobre status de sincronização, tempo entre sincronizações, volume de dados transmitidos e estatísticas de uso offline.

  • Integração para Módulo de Prevenção de Fraudes: Fornece mecanismos de validação de integridade de dados sincronizados e detecção de possíveis inconsistências durante o processo de sincronização.

Todas estas integrações são implementadas seguindo os princípios de segurança de dados, garantindo que mesmo em operação offline sejam mantidos os requisitos de integridade, confidencialidade e não-repúdio das informações.

Riscos Relacionados a Requisitos

  • Conflitos complexos de sincronização que o sistema não consegue resolver automaticamente:
  • Impacto: Alto
  • Mitigação: Implementação de um sistema de resolução de conflitos em camadas, com regras de negócio específicas para cada tipo de dado. Desenvolvimento de um mecanismo de escalação para administradores em casos excepcionais, com preservação de ambas as versões conflitantes. Criação de logs detalhados de conflitos para análise e aprimoramento contínuo do algoritmo de resolução.

  • Problemas de segurança em dados armazenados localmente:

  • Impacto: Alto
  • Mitigação: Utilização de criptografia AES-256 para todos os dados locais, implementação de mecanismos de autodestruição de dados sensíveis após período configurável sem sincronização, e permissões granulares para acesso a diferentes tipos de dados em modo offline. Auditoria periódica de segurança e atualizações frequentes dos algoritmos de criptografia.

  • Desempenho insatisfatório em dispositivos móveis de baixo custo:

  • Impacto: Médio
  • Mitigação: Otimização do código para minimizar uso de recursos, implementação de carregamento sob demanda, armazenamento seletivo de dados priorizando apenas informações essenciais para o usuário específico, e testes extensivos em dispositivos de entrada para garantir desempenho aceitável.

  • Complexidade na implementação da lógica de resolução de conflitos:

  • Impacto: Alto
  • Mitigação: Desenvolvimento de uma abordagem incremental, começando com regras simples baseadas em timestamp e progressivamente adicionando regras específicas para cada tipo de entidade. Criação de uma suíte abrangente de testes automatizados simulando diversos cenários de conflito. Documentação detalhada da lógica para facilitar manutenção futura.

  • Dificuldades técnicas com armazenamento e sincronização de grandes volumes de mídia:

  • Impacto: Médio
  • Mitigação: Implementação de compressão adaptativa de mídia baseada na qualidade da conexão, sincronização em segundo plano com prioridade reduzida para arquivos grandes, e mecanismos de resumo que sincronizam versões reduzidas inicialmente e completas posteriormente. Opção para sincronização seletiva de mídia pelo usuário.

  • Esgotamento do armazenamento local em uso prolongado sem conectividade:

  • Impacto: Médio
  • Mitigação: Implementação de políticas de retenção de dados configuráveis, rotação automática de dados menos utilizados, alertas preventivos quando o armazenamento estiver próximo do limite, e mecanismos de limpeza inteligente que preservam dados críticos enquanto removem dados redundantes ou já sincronizados.