Voltar para o portfólio
Logística · Java e Spring Boot

LogiFlow

Plataforma de gestão logística e entregas em Java e Spring Boot: pedidos com sagas, rastreamento ao vivo, ocorrências, SLA e app do motorista

Meu papel
Designer UX/UI · Análise de arquitetura
LogiFlowLogiFlow
01

Contexto

LogiFlow é uma plataforma de gestão logística e entregas para transportadoras e operações de última milha: pedidos, separação nos centros de distribuição, frota, rotas, ocorrências e SLA numa operação só, do pedido à porta do cliente, com um app para o motorista.

Fiz o produto, o UX/UI e a análise de arquitetura. A fundação técnica é o FTGO, a arquitetura de microsserviços em Java e Spring Boot do livro Microservices Patterns, com sagas, outbox transacional e CQRS; sobre ela desenhei as regras de logística, os fluxos, as telas e o design system.

Licença
Apache-2.0
Meu papel
Designer UX/UI, análise de arquitetura
Stack
Java, Spring Boot, Apache Kafka, MySQL, Docker
02

Problema de negócio

Numa operação de entregas, o pedido passa por várias mãos: o cliente que compra, o financeiro que aprova, o centro de distribuição que separa, o motorista que entrega. Cada etapa costuma morar num sistema ou numa planilha diferente, e a coordenação só descobre o atraso quando o cliente liga.

O LogiFlow junta tudo numa operação só: mostra o que vai atrasar antes de atrasar, trata a entrega que deu errado com regra clara e dá ao motorista um app que funciona mesmo sem sinal.

03

A fundação técnica

Do FTGO vêm os serviços em Spring Boot: pedido com ciclo de vida controlado por sagas (criar, cancelar e revisar), aprovação pela conta do cliente, ticket de separação com estados, entregador com disponibilidade e plano de coletas e entregas, histórico de pedidos em CQRS, API Gateway e documentação Swagger em cada serviço.

04

O produto LogiFlow

A camada de logística de última milha e toda a interface: centros de distribuição, frota, rastreamento ao vivo, ocorrências com limite de tentativas, SLA por janela de entrega, painel gerencial, relatórios, perfis de acesso e o app do motorista.

05

Arquitetura

Cada serviço é uma aplicação Spring Boot com banco próprio. As escritas que envolvem mais de um serviço viram sagas orquestradas pelo Order Service, e os eventos saem pelo Apache Kafka com outbox transacional: o evento é gravado na mesma transação do dado e publicado depois, então nada se perde entre o banco e a fila. Ao lado, como cada conceito do FTGO vira um conceito do LogiFlow.

Serviços do FTGO, saga CreateOrder e o mapeamento para o LogiFlow
06

Decisões de arquitetura e trade-offs

Seis decisões registradas como ADRs: o contexto, o que foi decidido, o custo de cada uma e como ela aparece para quem usa o produto.

Decisões de arquitetura com contexto, custo e efeito na tela
07

Arquitetura de informação e fluxos

Antes das telas, o mapa do produto, os cinco perfis de acesso e os três fluxos que mais importam: do pedido à entrega, ocorrência na entrega e revisão ou cancelamento.

Mapa do produto, perfis e fluxos principais
08

As telas no Figma

Doze telas desktop com protótipo navegável, para quem coordena a operação.

  1. 01 / 10

    Dashboard operacional

    A primeira tela responde “o que vai dar problema hoje?”: pedidos do dia, rotas na rua, entregas no prazo contra a meta, atrasos e ocorrências abertas, o SLA de cada centro de distribuição e a lista de pedidos com risco de atraso, já com a folga em minutos.

  2. 02 / 10

    Pedidos

    Busca, filtros por status, centro, janela e motorista, ordenação e paginação. Cada status tem uma cor fixa, e aguardando aprovação, aprovado e recusado são os estados reais do pedido no Order Service.

  3. 03 / 10

    Detalhe do pedido

    O ciclo de vida do pedido como linha do tempo, com os passos da saga e do ticket de separação, o plano do motorista com cada coleta e entrega (o Plan do Delivery Service), a folga do SLA, os itens e a auditoria de quem mudou o quê.

  4. 04 / 10

    Novo pedido

    O formulário avisa que o pedido nasce aguardando aprovação, porque é isso que a saga faz. A janela fora do horário do cliente é barrada no campo, e o resumo lembra que a mesma validação roda no servidor.

  5. 05 / 10

    Rastreamento ao vivo

    As rotas ativas com o progresso de cada motorista, filtros para atrasadas e sem sinal, e no mapa a rota selecionada com as paradas feitas, a próxima e a folga até o fim da janela.

  6. 06 / 10

    Ocorrências

    A fila de problemas na entrega e o tratamento de cada um: quem registrou, a foto, a distância do endereço, o prazo do SLA e três saídas possíveis. Reagendar exige motivo, e a terceira tentativa é a última.

  7. 07 / 10

    Relatórios e SLA

    Entregas no prazo por semana contra a meta, causas de falha e produtividade por motorista, lidos da visão CQRS para não pesar a operação.

  8. 08 / 10

    Frota

    Motoristas e veículos com a disponibilidade do turno, que vem do Delivery Service, mais veículo, habilitação e desempenho no prazo de cada motorista.

  9. 09 / 10

    Usuários e permissões

    A matriz de permissões por perfil, aplicada na API e não só na tela. O cliente B2B e o motorista veem apenas os próprios pedidos.

  10. 10 / 10

    Login

    Entrada por e-mail ou pelo login único da empresa (OIDC), com bloqueio após tentativas erradas. A recuperação de acesso usa uma mensagem neutra, que não revela quem tem conta.

09

Estados da interface

Carregando, vazio, erro e retorno das ações. O erro mantém os filtros e mostra um código para o suporte, e os avisos de pedido recusado ou em processamento vêm direto dos estados das sagas.

Carregando, vazio, erro e sucesso
10

App do motorista

O plano do entregador é uma lista ordenada de coletas e entregas. O app transforma essa lista na rota do dia, com comprovante por foto, assinatura e localização, e uma ocorrência que fica salva sem internet e sobe quando o sinal volta.

Rota do dia, comprovante de entrega e ocorrência
11

Decisões de UX/UI

O que guiou as escolhas de interface:

Folga em vez de status
Para a coordenação, “em rota” diz pouco. A folga em minutos até o fim da janela diz se precisa agir
Uma cor por status
A mesma cor em lista, detalhe, mapa e app, para o problema ser achado sem ler
Laranja só para agir
A ação principal de cada tela e o que exige atenção; o resto é neutro
Regra visível
Limite de tentativas, motivo obrigatório e validação no servidor aparecem na tela, para ninguém ser surpreendido
Motorista primeiro
Botões grandes, poucos campos e funcionamento offline no app

Sistema Visual

Um design system próprio no Figma, com variáveis de cor, espaçamento e raio, estilos de texto e componentes com variantes: botão, status do pedido, campo, item de menu, filtro e card de indicador. Neutros frios para a leitura longa, laranja para agir e uma cor por status.

Paleta

Laranja Sinal

#F2551D

Ação principal e alertas

Noite

#0E1525

Menu lateral

Tinta

#101828

Títulos e textos

Verde Entregue

#067647

Entregue e no prazo

Roxo Separação

#5B3CC4

Em separação no CD

Vermelho Falha

#B42318

Atraso e tentativa falhou

Tipografia

Space Grotesk

700

Títulos e números de indicador

Inter

400 / 500 / 600 / 700

Interface, tabelas e formulários

JetBrains Mono

400 / 700

Códigos de pedido e horários

12

Próximas versões

O que vem a seguir no roadmap do produto:

Roteirização
Sugestão de ordem das paradas por janela, peso e capacidade do veículo
Portal do cliente B2B
Acompanhamento dos próprios pedidos e comprovantes
Aviso ao destinatário
Link de rastreio e previsão de chegada por WhatsApp
Prova de entrega no portal
Foto, assinatura e local de cada entrega disponíveis para o cliente
13

Referências e créditos

A fundação técnica do LogiFlow é o FTGO, de Chris Richardson e da Eventuate, Inc., publicado sob a licença Apache 2.0.

14

Aprendizado

Desenhar sobre uma arquitetura de verdade muda a interface: consistência eventual vira estado “em processamento”, compensação de saga vira motivo de recusa, e a separação entre leitura e escrita define onde ficam listas e relatórios.