Monitor de conectividade de rede com telemetria em tempo real
O NetMonitor é um aplicativo desktop multiplataforma para monitoramento de conectividade de rede. Desenvolvido com Electron e React, oferece monitoramento contínuo via ping, testes de velocidade (download/upload) e notificações em tempo real quando ocorrem problemas de conexão.
O aplicativo roda na bandeja do sistema e continua monitorando mesmo com a janela fechada, ideal para usuários que precisam acompanhar a estabilidade da internet em segundo plano.
- Ping contínuo: Monitoramento para
8.8.8.8(Google DNS) em tempo real. - Visualização: Gráfico de latência dos últimos 5 minutos.
- Diagnóstico: Detecção automática de erros (timeout, host inacessível, falhas).
- Gestão de Logs: Log detalhado com timestamp, filtros de busca, exportação para
.txte auto-scroll.
- Métricas: Medição de ping, download e upload utilizando servidores Cloudflare.
- Feedback Visual: Barras de progresso e gráficos de evolução durante o teste.
- Análise Inteligente: Classificação de qualidade (Excelente a Baixa) com dicas personalizadas baseadas nos resultados.
- Custom UI: Janela personalizada sem bordas nativas (title bar customizada).
- System Tray: Minimiza para a bandeja com ícone de estado dinâmico (Conectado/Desconectado).
- Menu Rápido: Acesso a testes e controles diretamente pelo botão direito no ícone da bandeja.
- Alertas: Notificações nativas do sistema ao detectar instabilidades (com cooldown de 30s).
| Stack | Tecnologia |
|---|---|
| Desktop | Electron 30 |
| Frontend | React 18 + TypeScript |
| Build | Vite 5 |
| Empacotamento | electron-builder |
net-monitor/ ├── electron/ # Processo principal Electron │ ├── main.ts # Janela, tray, ping, speed test, notificações │ └── preload.ts # API segura (contextBridge) para o renderer ├── src/ # Frontend React │ ├── App.tsx # UI principal (abas, gráficos, lógica) │ ├── App.css │ ├── main.tsx │ └── index.css ├── dist/ # Build do renderer (Vite) ├── dist-electron/ # Build do main + preload └── package.json
---
## 🚀 Instalação
### Pré-requisitos
- **Node.js** 18+ (recomendado LTS)
- **npm** ou **pnpm**
### Desenvolvimento
```bash
# Clonar o repositório
git clone https://github.com/seu-usuario/net-monitor.git
cd net-monitor
# Instalar dependências
npm install
# Executar em modo desenvolvimento
npm run dev
npm run buildO comando build executa tsc, vite build e electron-builder. O executável gerado ficará em dist/ (ou conforme configurado no electron-builder).
| Script | Descrição |
|---|---|
npm run dev |
Inicia Vite + Electron em modo desenvolvimento |
npm run build |
Compila TypeScript, build Vite e empacota com electron-builder |
npm run lint |
Executa ESLint em .ts e .tsx |
npm run preview |
Preview do build Vite (modo web) |
- Sistema operacional: O monitoramento via ping usa o comando nativo do SO (
ping 8.8.8.8 -tno Windows). O app foi testado em Windows. - Modo web: Rodando sem Electron (
npm run preview), a interface carrega, mas funções que dependem de IPC (ping, speed test, tray) não funcionarão — o status mostrará "Modo web (IPC indisponível)". - Janela fixa: A janela principal tem tamanho fixo (1200×800 px) e não é redimensionável.
Este projeto está sob licença privada ("private": true no package.json). Consulte os termos antes de reutilizar ou redistribuir.
NetMonitor — Monitor de conectividade com telemetria em tempo real
