> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bulkroute.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Aplicativo do Motorista (PWA)

> Como seus motoristas utilizam o app móvel sem precisar baixar nada nas lojas de aplicativos.

O **BulkRoute Driver** é um Progressive Web App (PWA) de alta performance que funciona em qualquer smartphone (Android ou iPhone) diretamente pelo navegador.

## Como o Motorista Acessa

1. O gestor da empresa cadastra o motorista e sua senha no painel.
2. O motorista acessa no celular: `driver.bulkroute.com.br` (ou o subdomínio da sua empresa).
3. O navegador sugere **"Adicionar à Tela de Início"**, transformando o site em um ícone de aplicativo nativo.

<Note>
  Não é necessário publicar na App Store ou Google Play. O PWA funciona offline e recebe atualizações automaticamente quando o motorista abre o app com internet.
</Note>

## Funcionalidades do App

### Lista de Entregas do Dia

Ordenada pela melhor sequência de rota otimizada pelo roteirizador OSRM:

* Endereço do destinatário
* Janela de entrega (se agendada)
* Número de volumes
* Observações especiais (ex: "entregar nos fundos")

### Navegação com 1 Toque

Botão para abrir o endereço direto no:

* **Waze** (preferencial — considera trânsito em tempo real)
* **Google Maps**

### Comprovante Digital de Entrega (POD)

O BulkRoute exige **3 confirmações simultâneas** para validar a entrega:

1. **Foto do canhoto** da Nota Fiscal assinado
2. **Assinatura na tela** do aparelho pelo recebedor
3. **Nome do recebedor** digitado pelo motorista

Além disso:

* **Geolocalização GPS** registrada automaticamente
* **Data/hora** com timezone BR
* Upload síncrono (se online) ou fila offline (se sem sinal)

### Fila Offline (IndexedDB)

O motorista trabalha normalmente mesmo **sem internet**:

* Todas as ações (POD, tentativa frustrada, chat) vão para uma fila local
* Quando o sinal volta, a fila sincroniza automaticamente com retry
* O motorista vê um indicador "Pendente sincronização" no topo

### Chat com a Central

* Motorista e gestor trocam mensagens em tempo real via WebSocket
* Útil para orientações de última hora (ex: "cliente pediu para entregar no portão dos fundos")
* Histórico persistido por shipment

### Broadcast de GPS

Quando o shipment está `OUT_FOR_DELIVERY`:

* O app envia a posição GPS a cada 10 segundos
* O gestor vê o motorista no mapa em tempo real
* O cliente final também vê (na página de tracking live)
* **Estritamente limitado ao status OUT\_FOR\_DELIVERY** — não rastreia o motorista fora do horário de entrega

### Tentativa Frustrada

Se o motorista não consegue entregar:

1. Seleciona o **motivo** (cliente ausente, endereço não encontrado, recusa, etc.)
2. Tira uma **foto da fachada** (prova de que esteve no local)
3. Registra **observações** (ex: "portão fechado, vizinformou que volta à noite")
4. O status muda para `FAILED` e o cliente é notificado

## Gestão de Motoristas no Painel

### Cadastrar motorista

1. Vá em **Frota** > **Motoristas**
2. Clique em **Novo Motorista**
3. Preencha: nome, celular, CNH, CPF
4. Defina senha de acesso ao app
5. Atribua um veículo padrão
6. Salve

### Status do motorista

| Status         | Significado                         |
| :------------- | :---------------------------------- |
| **Disponível** | Pode receber novas entregas         |
| **Em rota**    | Está com entregas em andamento      |
| **Inativo**    | Não recebe entregas (folga, férias) |

### Relatórios

O painel mostra por motorista:

* Entregas do dia / semana / mês
* Taxa de sucesso (entregas vs tentativas frustradas)
* Tempo médio por entrega
* Km rodados
* Avaliação NPS recebida

## Instalação no Celular

### Android (Chrome)

1. Abra `driver.bulkroute.com.br` no Chrome
2. Menu (⋮) → **Adicionar à tela inicial**
3. O app aparece como ícone nativo

### iPhone (Safari)

1. Abra `driver.bulkroute.com.br` no Safari
2. Botão compartilhar → **Adicionar à Tela de Início**
3. O app aparece como ícone nativo

<Tip>
  Recomende aos motoristas instalar o app na tela inicial — além de abrir mais rápido, funciona melhor offline e ocupa menos bateria que uma aba do navegador.
</Tip>
