Skip to content

cioccasimone97/QueueMonitor

Repository files navigation

Queue Monitor Pro

Applicazione Windows per il Monitoraggio Visuale delle Code


📋 Descrizione

Queue Monitor Pro è un'applicazione desktop Windows Forms sviluppata in Visual Basic .NET (.NET 8) per il monitoraggio in tempo reale dei tempi di attesa delle code tramite gauge grafici animati.

L'applicazione è completamente standalone: nessuna connessione internet, nessun database esterno, nessuna libreria di terze parti. Tutto il rendering dei gauge è in GDI+ puro.


🗂️ Struttura del Progetto

QueueMonitor/
├── QueueMonitor.vbproj     ← File progetto Visual Studio
├── app.manifest            ← Manifest DPI-aware
├── Program.vb              ← Entry point applicazione
├── Models.vb               ← Modelli dati, configurazione, persistenza JSON
├── GaugeControl.vb         ← Controllo gauge custom (GDI+)
├── FormDashboard.vb        ← Finestra principale (monitoraggio)
├── FormConfig.vb           ← Finestra configurazione gauge e sistema
├── FormBackend.vb          ← Finestra backend (gestione code e tempi)
└── README.md               ← Questa guida

🚀 Come Aprire in Visual Studio

Requisiti

  • Visual Studio 2022 (Community, Professional o Enterprise)
  • SDK .NET 8 (incluso in VS 2022)
  • Windows 10 / 11

Passi

  1. Aprire Visual Studio 2022
  2. FileApriProgetto/Soluzione...
  3. Selezionare il file QueueMonitor.vbproj
  4. Premere F5 per avviare in debug, oppure Ctrl+F5 per avviare senza debug

Nota: Al primo avvio, Visual Studio ripristinerà automaticamente eventuali dipendenze NuGet. Questo progetto non ne ha, quindi sarà istantaneo.


📦 Come Creare il File .EXE

Metodo 1: Pubblicazione da Visual Studio (raccomandato)

  1. Click destro sul progetto in Solution Explorer
  2. Selezionare Pubblica...
  3. Scegliere Cartella come destinazione
  4. Configurare:
    • Framework: net8.0-windows
    • Runtime: win-x64
    • Self-contained (include il runtime .NET)
    • Produce single file (un solo .exe)
  5. Cliccare Pubblica
  6. Il file QueueMonitor.exe sarà in bin\Release\net8.0-windows\win-x64\publish\

Metodo 2: Da riga di comando

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

Metodo 3: Build normale (richiede .NET 8 installato sul PC destinazione)

Ctrl+Shift+B  (oppure Build → Build Solution)

Il file .exe sarà in bin\Debug\net8.0-windows\ o bin\Release\net8.0-windows\


🖥️ Utilizzo dell'Applicazione

Finestra Dashboard (principale)

  • Mostra tutti i gauge in una griglia configurabile
  • Click su un gauge → apre il Backend con quella coda selezionata
  • Bottone ⚙ Configura → apre la finestra configurazione
  • Bottone 📊 Backend Dati → apre la finestra gestione
  • Bottone ↻ Aggiorna → aggiorna manualmente tutti i gauge
  • La barra di stato mostra: code attive, OK, avvisi, critiche
  • Le code in stato CRITICO fanno lampeggiare la barra

Finestra Configurazione (⚙)

Accessibile dalla Dashboard. Permette di:

Tab "🎛 Stile Gauge" (per ogni coda):

  • Scegliere lo stile: Arco 270°, Semicerchio, Barra Orizzontale, Barra Verticale
  • Scegliere lo schema colori: Semaforo, Oceano, Tramonto, Monocromatico, Personalizzato
  • Per "Personalizzato": selezionare i colori per Normale / Attenzione / Critico
  • Configurare larghezza arco, visibilità etichette, animazioni
  • Anteprima live del gauge a destra

Tab "⚠ Soglie" (per ogni coda):

  • Tempo massimo: valore a cui il gauge mostra 100%
  • Soglia attenzione: il gauge diventa arancio/giallo
  • Soglia critica: il gauge diventa rosso e lampeggia
  • Visualizzazione grafica della barra con zone colorate

Tab "🌐 Globale":

  • Numero di colonne nella griglia dashboard
  • Intervallo auto-refresh (secondi)
  • Dimensione font valori gauge
  • Mostra/nascondi barra di stato

Finestra Backend Dati (📊)

Accessibile dalla Dashboard. Permette di:

Lista code (sinistra):

  • Visualizza tutte le code con stato colorato
  • + Aggiungi: crea una nuova coda
  • − Rimuovi: elimina la coda selezionata
  • ◉ Attiva/Pausa: attiva o sospende il monitoraggio

Dettaglio coda (destra):

  • Slider + campo numerico: imposta il tempo di attesa in minuti
  • Bottoni preset: 0, 5, 10, 15, 20, 30, 45, 60, 90 minuti
  • ✓ AGGIORNA ATTESA: applica il valore e aggiorna la dashboard
  • Mini-gauge di anteprima live
  • Modifica nome e descrizione della coda
  • Storico misurazioni: ultimi 20 campioni con timestamp e stato
  • Statistiche: media, massimo, minimo, numero campioni

💾 Persistenza Dati

La configurazione viene salvata automaticamente in:

%AppData%\QueueMonitor\config.json

(es. C:\Users\NomeUtente\AppData\Roaming\QueueMonitor\config.json)

Il file JSON è leggibile e modificabile manualmente. Al primo avvio vengono caricate 5 code dimostrative pre-configurate.


🎨 Tipi di Gauge Disponibili

Stile Descrizione
Arco 270° Arco circolare da 135° a 405° (stile tachimetro). Mostra valore centrale, soglie, etichette
Semicerchio Semicerchio inferiore. Compatto e leggibile
Barra Orizzontale Barra da sinistra a destra con griglia e soglie visive
Barra Verticale Barra dal basso verso l'alto

Tutti i gauge includono:

  • Animazione di transizione fluida (easing esponenziale)
  • Effetto glow sul riempimento
  • Doppio buffering per rendering senza sfarfallio
  • Indicatori di soglia grafici

🔧 Architettura Tecnica

Componente Tecnologia
UI Framework Windows Forms (.NET 8)
Rendering gauge GDI+ (System.Drawing)
Persistenza System.Text.Json (built-in)
Pattern stato Singleton (AppState)
Animazioni Timer 60fps + easing
Threading InvokeRequired per thread-safety

📝 Note di Sviluppo

  • Nessuna libreria esterna: tutto il codice è self-contained
  • Il rendering usa AntiAlias per gauge lisci a qualsiasi dimensione
  • I gauge si ridimensionano automaticamente con la finestra
  • La configurazione è thread-safe tramite InvokeRequired
  • I commenti XML ''' sono compatibili con IntelliSense di Visual Studio

Queue Monitor Pro — Sviluppato con Visual Basic .NET e Visual Studio 2022

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors