Este repositório contém o frontend da aplicação Aqua (Análise Pluviométrica). O projeto é uma aplicação web moderna construída com Vue 3 e Vite, com foco em monitoramento pluviométrico, câmeras HLS, mapas e notificações push.
- Interface responsiva para visualização de pontos de alagamento, câmeras em streaming HLS, previsões e informações contextuais.
- Suporte a PWA (instalação offline) e Firebase Messaging para notificações push.
- Uso de Mapbox para mapas interativos e HLS para vídeo ao vivo (hls.js).
- Arquitetura modular: módulos independentes (auth, flood_management, flood_camera_monitoring, info, payment, profile).
- Vue 3 + TypeScript
- Vite (dev server e bundler)
- Pinia (state management)
- Vue Router
- Vuetify + Tailwind CSS
- Axios para comunicação HTTP
- vite-plugin-pwa para PWA
- Firebase (cloud messaging)
- Mapbox GL e plugins Mapbox
- Chart.js para gráficos
- tsyringe para injeção de dependências
- src/
- App.vue, main.ts
- @core/: componentes e infra base (serviços, DI, interfaces, composables)
- @templates/: templates e repositórios base
- modules/: implementação por domínio (ex.: flood_management, flood_camera_monitoring)
- public/: arquivos estáticos e service workers (ex.: firebase-messaging-sw.js)
- vite.config.ts: aliases, plugins e dev proxy (/api e /hls)
- Instale dependências:
npm install-
Configure
.envcomVITE_API_URL(e opcionalmenteVITE_HLS_TARGET). -
Execute em modo desenvolvimento:
npm run dev- O dev server geralmente fica em http://localhost:5173.
- O
vite.config.tsjá define proxies úteis para desenvolvimento:/apie/hls.
Build e preview de produção:
npm run build
npm run previewsrc/@core/services/api.tscontém a classeApique instancia Axios combaseURL: import.meta.env.VITE_API_URLe adiciona automaticamente o cabeçalhoAuthorization: Bearer <token>quando uma requisição é feita com{ auth: true }nos headers.- Em alguns repositórios (ex.:
FloodRepository), chamadas seguras usam{ auth: true }para enviar o token salvo emlocalStorage. - Para streams HLS em dev, o código reescreve URLs para
/hlsquandoVITE_HLS_TARGETé configurado, evitando problemas de CORS.
npm run dev— servidor de desenvolvimento (HMR)npm run build— geradist/para produçãonpm run preview— serve o build localmentenpm run test:unit— roda testes unitários com Vitestnpm run type-check— checa tipos comvue-tscnpm run lint— lint/format
- Fork e branch com nome descritivo
- Abra PR com o que foi alterado e por quê
- Inclua testes mínimos quando possível