Sérgio Corrêa 0bc09e4001 feat: Dashboard frontend estilo JumpCloud
- Componente MainDashboard.jsx completo (400+ linhas)
- 5 cards de estatísticas principais
- 8 cards de alertas e notificações
- Status do sistema em tempo real
- Atualização automática a cada 30 segundos
- Design responsivo (mobile, tablet, desktop)
- Rota backend /api/dashboard/stats
- Documentação completa (FRONTEND_DASHBOARD.md)
- Paleta de cores similar ao JumpCloud
- Integração com sistema MDM

Dashboard moderno e funcional pronto para uso!
2025-11-16 23:19:47 +00:00
2025-11-16 22:56:35 +00:00

NoIdle - Sistema de Monitoramento de Atividades

Zero Idle, Maximum Productivity

Sistema completo de monitoramento de atividades de usuários em tempo real, incluindo cliente Windows, backend Node.js e dashboard web.


📋 Sobre o Projeto

NoIdle é um sistema de monitoramento de produtividade que captura e registra:

  • Aplicativos ativos
  • Títulos de janelas
  • URLs navegadas (Chrome, Edge, Firefox)
  • Tempo ocioso
  • Eventos de logon/logoff
  • Heartbeat de dispositivos

🏗️ Arquitetura

NoIdle/
├── backend/           # API Node.js + Express + PostgreSQL
├── frontend/          # Dashboard Next.js + React
├── CLIENTE_CORRIGIDO.py   # Cliente Windows (Python)
└── scripts/           # Scripts PowerShell de configuração

🚀 Componentes

1. Cliente Windows (CLIENTE_CORRIGIDO.py)

Cliente Python que roda em segundo plano nos computadores Windows:

Recursos:

  • Monitoramento de janelas ativas
  • Captura de URLs dos navegadores
  • Detecção de tempo ocioso
  • Auto-start após reinicialização
  • Modo silencioso (--silent)
  • System tray icon
  • Eventos de sessão (logon/logoff)

Instalação:

# Ativar o cliente
.\NoIdle.exe

# Modo silencioso (após ativação)
.\NoIdle.exe --silent

2. Backend (Node.js)

API REST que processa e armazena os dados.

Tecnologias:

  • Node.js + Express
  • PostgreSQL
  • PM2 (gerenciamento de processos)

Endpoints:

  • POST /api/devices/activate - Ativar dispositivo
  • POST /api/devices/heartbeat - Heartbeat
  • POST /api/activity/log - Registrar atividade
  • POST /api/activity/session - Eventos de sessão

3. Frontend (Next.js)

Dashboard web para visualização e gerenciamento.

URL: https://admin.noidle.tech

Recursos:

  • 📊 Dashboard de atividades em tempo real
  • 👥 Gerenciamento de usuários e dispositivos
  • 📈 Relatórios e estatísticas
  • 🔍 Histórico de navegação
  • ⏱️ Análise de tempo ocioso

🔧 Problema Resolvido: Auto-Start

Problema

O cliente não iniciava automaticamente após reinicialização do Windows.

Solução Implementada

3 Camadas de Proteção:

  1. Registro do Windows - Método primário
  2. Task Scheduler - Backup com auto-restart
  3. Modo Silencioso - Execução sem interface

Scripts de Correção:

  • CONFIGURAR_AUTOSTART_NOIDLE.ps1 - Configurar auto-start
  • VERIFICAR_E_CORRIGIR_NOIDLE.ps1 - Diagnóstico + correção automática

Documentação:

  • LEIA_PRIMEIRO.md - Guia rápido
  • SOLUCAO_AUTOSTART.md - Documentação técnica completa

📦 Compilação do Cliente

Windows (Recomendado)

# Usando script automatizado
.\BUILD_NOIDLE.ps1

# Ou manualmente
pip install pyinstaller pywin32 psutil requests pystray pillow schedule
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py

Linux (Docker)

# Usando script automatizado
./BUILD_LINUX.sh

# Ou manualmente
docker run --rm -v $(pwd):/src cdrx/pyinstaller-windows:python3 \
  /bin/bash -c "pip install pywin32 psutil requests pystray pillow schedule && \
  pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py"

Documentação: Ver BUILD_CLIENTE.md para detalhes completos.


📚 Documentação

Para Usuários Finais

  • LEIA_PRIMEIRO.md - Comece por aqui!
  • GUIA_RAPIDO_AUTOSTART.md - Guia rápido de resolução de problemas

Para Suporte Técnico

  • SOLUCAO_AUTOSTART.md - Troubleshooting completo
  • VERIFICAR_E_CORRIGIR_NOIDLE.ps1 - Script de diagnóstico

Para Desenvolvedores

  • BUILD_CLIENTE.md - Como compilar o cliente
  • COMANDOS_BUILD.md - Quick reference de comandos
  • README_SOLUCAO_AUTOSTART.md - Visão geral da solução
  • CLIENT_CONFIG.md - Configuração da API
  • ESPECIFICACAO_CLIENTE_WINDOWS.md - Especificação técnica

🚀 Quick Start

1. Backend

cd backend
npm install
npm run dev

2. Frontend

cd frontend
npm install
npm run dev

3. Cliente Windows

# Compilar
.\BUILD_NOIDLE.ps1

# Testar
.\dist\NoIdle.exe

🔐 Configuração

Backend (.env)

DATABASE_URL=postgresql://user:pass@localhost:5432/noidle
PORT=3000
NODE_ENV=production

Cliente (config.json)

{
  "device_id": "DEV-XXXX",
  "api_url": "https://admin.noidle.tech/api"
}

📊 Estrutura do Banco de Dados

-- Principais tabelas
devices          -- Dispositivos cadastrados
activities       -- Atividades registradas
browsing_history -- Histórico de navegação
session_events   -- Eventos de logon/logoff
users            -- Usuários do sistema

🛠️ Scripts PowerShell

Configuração

  • INSTALADOR_POWERSHELL.ps1 - Instalador completo
  • CONFIGURAR_AUTOSTART_NOIDLE.ps1 - Configurar auto-start

Diagnóstico

  • VERIFICAR_E_CORRIGIR_NOIDLE.ps1 - Diagnóstico completo
  • DIAGNOSTICO_CLIENTE_WINDOWS.ps1 - Diagnóstico detalhado
  • VERIFICAR_CLIENTE_SIMPLES.ps1 - Verificação rápida

Build

  • BUILD_NOIDLE.ps1 - Build automatizado (Windows)
  • BUILD_LINUX.sh - Build automatizado (Linux)

🧪 Testes

Testar Cliente

# Iniciar em modo silencioso
.\NoIdle.exe --silent

# Verificar processo
Get-Process -Name "NoIdle"

# Verificar auto-start
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "NoIdle"

Testar API

# Heartbeat
curl -X POST https://admin.noidle.tech/api/devices/heartbeat \
  -H "Content-Type: application/json" \
  -d '{"device_id":"TEST"}'

📦 Distribuição

Pacote Completo

NoIdle-v1.0.zip
├── NoIdle.exe
├── CONFIGURAR_AUTOSTART_NOIDLE.ps1
├── VERIFICAR_E_CORRIGIR_NOIDLE.ps1
├── GUIA_RAPIDO_AUTOSTART.md
└── LEIA_PRIMEIRO.md

🔄 Changelog

v1.0 (2025-11-16)

  • Cliente com modo silencioso
  • Auto-start robusto (Registry + Task Scheduler)
  • Scripts de diagnóstico e correção
  • Documentação completa
  • Build scripts para Windows e Linux

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch (git checkout -b feature/nova-funcionalidade)
  3. Commit suas mudanças (git commit -m 'Adiciona nova funcionalidade')
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

📄 Licença

Proprietary - Todos os direitos reservados


👨‍💻 Autor

Sérgio Corrêa


🆘 Suporte

Para problemas ou dúvidas:

  1. Consulte LEIA_PRIMEIRO.md
  2. Execute VERIFICAR_E_CORRIGIR_NOIDLE.ps1
  3. Verifique a documentação em /docs

Status do Projeto

  • Backend: Funcionando
  • Frontend: Funcionando
  • Cliente Windows: Funcionando
  • Auto-start: Resolvido
  • Documentação: Completa
  • Build Scripts: Prontos

NoIdle - Zero Idle, Maximum Productivity 🚀

Description
NoIdle monitoração de produtividade
Readme 306 KiB
Languages
JavaScript 43.4%
Python 24.2%
PowerShell 21.3%
Shell 5.1%
PLpgSQL 4.3%
Other 1.7%