# BACKLOG — Próximas melhorias

Ideias e melhorias sugeridas, ordenadas por impacto/esforço.

---

## 🔥 Prioridade alta

### Hardening de produção (ver HANDOFF.md, seção crítica)
- Rate limiting nos endpoints públicos
- Validação de schema (zod/ajv)
- Reduzir tamanho de upload de mídia
- Backup off-site automático
- Monitoring (UptimeRobot, Sentry)
- Audit log de operações sensíveis

### Service Worker / PWA real
- Permitir uso offline real (atualmente offline-first mas não offline-only)
- Background Sync API para retentar sync quando reconectar
- Push notifications via Web Push (servidor envia → celular recebe sem o app aberto)
- Cache de tiles do mapa para uso em alto-mar

### Testes automatizados
- Backend: vitest com fixtures de SQLite em memória
- Frontend: playwright para fluxos críticos (criar viagem, vigia, alarme)
- CI no GitHub Actions

### Reconexão robusta de GPS
- Atualmente, se o Android pausa o GPS quando tab fica em background, não
  retoma automaticamente. Precisamos detectar isso e re-iniciar.
- Considerar Sensor APIs alternativas (Generic Sensor, DeviceOrientationEvent)

---

## 🟡 Prioridade média

### Geofencing avançado
- Suporte a polígonos (não só círculos)
  - UI: tap pra adicionar vértices, double-tap pra fechar
  - Detecção: ponto-em-polígono com ray-casting
- Zonas com horário (ex: "marina fecha às 22h")
- Zonas dependentes de maré

### Tracks como entidade separada
- Hoje cada track vai dentro do trip como JSON. Para tracks longas (multi-dia)
  isso pesa no localStorage.
- Mover para IndexedDB com sua própria tabela
- Permitir "continuar" um track entre sessões do app

### Histórico de fundeios mais rico
- Hoje só guarda resumo. Salvar também os GPS points completos.
- Análise: "Em que ponto aquela vez que o vento mudou?" — replay visual

### Importar/exportar mais formatos
- KML (Google Earth)
- TCX (Garmin)
- CSV simples (lat, lng, ts)
- AIS (sistema de identificação automática) — importar tracks de outros barcos

### Multi-barco / multi-dispositivo
- Suportar mais de um barco no mesmo backend
- Cada barco com seu próprio token e dados isolados
- UI no app para "trocar de barco"
- Compartilhamento entre tripulação (perfis com permissões)

### Sincronização incremental
- Hoje sempre envia/baixa estado todo. Para usuários com muito histórico,
  fica lento e pesa.
- Versionar por entidade (id + updated_at). Sync envia só o que mudou.
- CRDTs ou Last-Write-Wins-com-timestamp

### Refatoração do frontend
- HTML monolítico (~3500 linhas) — difícil de revisar
- Sugestão: migrar para Vue/Svelte/Lit + Vite com build single-file
- Manter mesma estética/UX

---

## 🟢 Prioridade baixa / nice-to-have

### Tiles náuticas
- OpenSeaMap overlay (boias, faróis, ports)
- Mapbox com nautical layer (pago, mas mais bonito)
- Tiles com batimetria

### Previsão de vento como overlay no mapa
- Windy Map Forecast API (precisa de chave separada, ECMWF Pro custa caro)
- Embed da Windy via iframe
- Visualização local de wind barbs nas próximas N horas

### Histórico de tempo
- Salvar previsão a cada fetch
- Comparar previsão vs realidade ("disseram 15kn, foi 22kn")
- Útil para aprender sobre microclimas locais

### AIS Receiver
- Se usuário tem receptor AIS no barco, integrar
- Mostrar outros barcos próximos no mapa em tempo real
- Alerta de proximidade / colisão

### Compass / heading
- Usar `DeviceOrientationEvent` para mostrar a proa do barco
- Útil em modo de "arrumar a posição da âncora"

### Logs de bordo automáticos
- Detectar transições (saiu da marina → começa viagem; entrou em outra
  marina → encerra viagem)
- Sugerir nome de destino com base em geocoding reverso

### Manutenção preditiva
- Com base no horímetro + histórico, sugerir próxima manutenção
  ("troca de óleo a cada 100h, faltam 23h")
- Lembretes automáticos no app
- Custo médio histórico por categoria

### Modo de leme / autopilot
- Curva de respostas de leme em função do vento
- Salvar trim de velas que funcionaram bem em condições parecidas

### Compartilhamento de relatórios
- Gerar PDF bonito da viagem (dados + fotos + mapa)
- Postar diretamente em redes sociais
- Galeria pública de viagens (opt-in)

### App nativo via Capacitor
- Wrap do HTML em app Android/iOS nativo
- Acesso a APIs que browser não tem (background GPS contínuo)
- Notificações push reais
- Distribuir via Play Store / App Store

### Desktop
- Versão Electron para uso no chartplotter
- Sync com app de celular

### Integração com instrumentos via NMEA
- Receptor NMEA 0183 / 2000 via WebSerial
- Importar dados de velocidade da água, profundidade, temperatura
- Direção/intensidade do vento de anemômetro do mastro

### IA / análise
- Análise de viagens: "Você navegou X milhas em Y horas, vento médio Z"
- Sugestões de melhoria: "Sua média foi 4kn — o barco rende mais 5kn neste vento"
- Detecção de anomalias no consumo de combustível

---

## 🔮 Ideias exploratórias

### "Modo MOB" (Man Over Board)
- Botão grande de emergência
- Marca a posição imediatamente
- Dispara TODOS os canais com prioridade máxima
- Inclui Coast Guard / Marinha se configurado

### Previsão de chegada (ETA)
- Com base na velocidade média e rumo
- Atualiza em tempo real durante a viagem
- Compartilha automaticamente com tripulação em terra

### Diário social
- Compartilhar viagens com amigos (privado)
- Comentários, likes
- Encontros: "Aquele veleiro está perto, quer ancorar junto?"

### Comunidade do Shivao
- App específico do barco com fotos da tripulação
- Rituais e tradições do barco registradas
- Tipo um "livro do barco" digital
