# 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