feat: Implementação completa do NoIdle - Cliente, Backend e Scripts

- Cliente Windows com modo silencioso e auto-start robusto
- Backend Node.js + API REST
- Frontend Next.js + Dashboard
- Scripts PowerShell de configuração e diagnóstico
- Documentação completa
- Build scripts para Windows e Linux
- Solução de auto-start após reinicialização

Resolução do problema: Cliente não voltava ativo após reboot
Solução: Registro do Windows + Task Scheduler + Modo silencioso
This commit is contained in:
root
2025-11-16 22:56:35 +00:00
commit 6086c13be7
58 changed files with 10693 additions and 0 deletions

332
README.md Normal file
View File

@@ -0,0 +1,332 @@
# 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:**
```powershell
# 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)
```powershell
# 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)
```bash
# 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
```bash
cd backend
npm install
npm run dev
```
### 2. Frontend
```bash
cd frontend
npm install
npm run dev
```
### 3. Cliente Windows
```powershell
# Compilar
.\BUILD_NOIDLE.ps1
# Testar
.\dist\NoIdle.exe
```
---
## 🔐 Configuração
### Backend (.env)
```env
DATABASE_URL=postgresql://user:pass@localhost:5432/noidle
PORT=3000
NODE_ENV=production
```
### Cliente (config.json)
```json
{
"device_id": "DEV-XXXX",
"api_url": "https://admin.noidle.tech/api"
}
```
---
## 📊 Estrutura do Banco de Dados
```sql
-- 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
```powershell
# 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
```bash
# 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**
- Repositório: https://meurepositorio.com/sergio.correa/NoIdle
---
## 🆘 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** 🚀