Pular para o conteúdo
Voltar

Suprimentos (WMS)

Em produçãoPapel: Desenvolvedor principalFlutterRiverpodSupabaseAndroid

WMS do Grupo Coagro em Flutter: inventário, recebimento, conferência, separação e endereçamento no coletor Android, no lugar do app do fornecedor do ERP.

Suprimentos (WMS)

// Visão geral

O módulo de armazém da Coagro: gestão de lotes, dados logísticos, endereços de separação, inventário, recebimento, conferência, separação e auditoria — no coletor de dados Android, na web e no Windows.

// O desafio

O armazém trabalhava com o coletor do fornecedor do ERP, uma caixa-preta difícil de adaptar à operação. Trocá-lo exigia reproduzir com fidelidade o que ele fazia, rotina por rotina, antes de melhorar qualquer coisa — sem parar o armazém.

// Restrições

Reproduzir com fidelidade, rotina por rotina, o coletor do fornecedor do ERP antes de melhorar qualquer coisa — sem parar o armazém — e rodar no coletor Android, na web e no Windows.

// Decisões de engenharia

Regra no banco

Escolha
todo acesso a dados passa por RPCs no Postgres.
Por quê
a regra vale para qualquer cliente — coletor Android, web e Windows — sem ser reescrita em cada um.
Trade-off
a lógica de negócio fica em SQL, fora do código Dart.

// A solução

App Flutter com Riverpod e Clean Architecture por funcionalidade, que divide tema, componentes e telemetria com o CRM Loja. Todo acesso a dados passa por RPCs no Postgres, então a regra mora no banco e vale para qualquer cliente. Os fluxos são guiados por código de barras, com contagem e conferência às cegas e busca de produto que ignora acentos; a distribuição é por atualização OTA do APK, sem loja.

Meu papel

Desenvolvedor principal (cerca de 98% dos commits): arquitetura, app, banco (169 migrations), testes e distribuição. Sistema do Grupo Coagro, em parceria com a NWERP.

Tecnologias

FlutterDartRiverpodgo_routerSupabasePostgreSQLKotlin

// Telas

Menu lateral do WMS com módulos de recebimento, estoque, inventário e expedição
Lista de pedidos para separação, com progresso de itens e pedido atribuído ao operador
Separação de item por código de barras, com endereço de apanha e quantidade a confirmar

// Resultado e evidências

Em uso no armazém, com inventário, conferência e separação já em produção, na versão 1.50 e com cerca de 290 arquivos de teste.

arquivos de teste
~290
migrations no Supabase
169
dos commits
~98%

Gostou deste tipo de trabalho?