Frontend Web — Vue

O portal web do RadarBov é construído com Vue 3.5.13 e TypeScript, usando Vite como bundler. É a interface principal para gestão, consulta e relatórios — complementando o app mobile que é focado em operações de campo.


Stack técnica

ComponenteVersão
Vue3.5.13
TypeScript5.7.2
Vite6.0
Vue RouterRoteamento SPA
PiniaGerenciamento de estado
AxiosHTTP client
LeafletMapas interativos
Chart.jsGráficos e dashboards
i18nInternacionalização

Estrutura de páginas

O frontend está organizado em módulos por domínio:

MóduloFuncionalidade
auth/Login, cadastro, recuperação de senha
establishments/Gestão de estabelecimentos
animals/Entradas, saídas, identificações
gta/GTAs
travels/Viagens e veículos
tags/Brincos RFID
shares/Compartilhamento de Dados
invites/Convites e Permissões
reports/Relatórios e Exportações
socioenvironmental/Conformidade Socioambiental

Gerenciamento de estado — Pinia

Cada módulo tem sua própria store Pinia. Stores principais:

StoreEstado gerenciado
authStoreUsuário logado, token, perfil ativo
establishmentStoreEstabelecimento ativo, lista de estabelecimentos
uiStoreEstado da UI (loading, modais, alertas)

Comunicação com a API

O frontend usa Axios para chamar a API REST do backend. Interceptors do Axios gerenciam:

  • Injeção automática do token JWT no header Authorization
  • Refresh automático de token quando o access token expira
  • Redirecionamento para login quando o refresh falha

Mapas

O portal usa Leaflet para exibir mapas em:


Diferenças em relação ao app mobile

O portal web é focado em gestão e consulta, não em operações de campo:

  • Sem leitura de brincos RFID (sem Bluetooth)
  • Sem funcionamento offline
  • Usuários criados por administrador (não auto-cadastro)
  • Maior foco em relatórios e visualizações de dados

Ver comparação completa em App Mobile - Flutter.


Ver também