
# 05 – Design WebUI (structure, pages, composants)

Objectif : définir l’interface utilisateur de Linux BenchTools, les pages, les composants, l’organisation visuelle et les interactions nécessaires.

---

# 1. Principes généraux

- Interface orientée **observabilité** des performances machines.
- Style sombre **Monokai-like**.
- Pages structurées en **cartes** et **tableaux lisibles**.
- Navigation : **Dashboard**, **Devices**, **Settings**.
- Composants réutilisables : badges score, cartes hardware, tableaux benchmark.

---

# 2. Pages de la WebUI

## 2.1. Dashboard (`/`)
Présente un aperçu du parc machines et un classement global.

### Contenu :
- **Stats globales**
  - Nombre de devices
  - Nombre total de benchmarks
  - Score global moyen
  - Dernier bench reçu
- **Tableau Top Devices**
  - Rang
  - Hostname
  - Description
  - Score global
  - Scores CPU/MEM/DISK/NET/GPU
  - Dernier run
- **Bloc “Quick Bench Script”**
  - Commande à copier pour exécuter un bench sur une nouvelle machine.

---

## 2.2. Liste Devices (`/devices`)

- Tableau paginé et filtrable
- Colonnes :
  - Hostname
  - Description
  - Location
  - Tags
  - Dernier Score
  - Dernier Bench
  - Bouton “Voir”

Barre de recherche : filtre hostname / tags / description.

---

## 2.3. Page Device Détail (`/devices/{id}`)

### Sections :

#### A. Bandeau principal
- Hostname
- Description
- Tags
- Localisation / Owner

#### B. Résumé Hardware
- CPU : modèle, cores, threads, fréquences
- RAM : total, slots utilisés, détail
- GPU
- Stockage (NVMe/SSD/HDD)
- Réseau
- Carte mère / BIOS
- OS / kernel

#### C. Dernier Benchmark
- Score global + badge couleur
- Scores CPU / MEM / DISK / NET / GPU
- Timestamp
- Bouton “Voir JSON complet”

#### D. Onglets

1. **Summary**
2. **Benchmarks**
   - Tableau simple
   - Évolution future en graphe
3. **Documents**
   - Upload PDF/images
   - Liste des documents
   - Boutons download/delete
4. **Links**
   - Liste des liens constructeurs
   - Form ajout
   - Edit / Delete

---

## 2.4. Settings (`/settings`)

Champs configurables :
- Bench server URL
- Default iperf-server
- Token API (lecture seule)
- Commande bench générée automatiquement

---

# 3. Style visuel (Monokai Dark)

### Couleurs
- Fond général : `#1e1e1e`
- Cartes : `#2d2d2d`
- Texte principal : `#f8f8f2`
- Texte secondaire : `#cccccc`
- Success : `#a6e22e`
- Warning : `#fd971f`
- Danger : `#f92672`

### Composants
- **Badge Score**
  - 0–50 : rouge
  - 51–75 : orange
  - 76–100 : vert
- **Cartes Hardware**
  - Layout en 2 ou 3 colonnes
- **Tableaux**
  - Style striped + hover highlight

---

# 4. Mockups ASCII

## Dashboard
```
+---------------------------------------------------------------------------+
| Linux BenchTools – Dashboard                                              |
+---------------------------------------------------------------------------+
| Stats                                                                     |
|   Devices: 12   Benchmarks: 47   Avg Score: 78.4   Last: 2025‑12‑07       |
+---------------------------------------------------------------------------+
| Top Devices                                                               |
+---------------------------------------------------------------------------+
| # | Hostname          | Score | CPU | MEM | DISK | NET | GPU | Last Run  |
|---------------------------------------------------------------------------|
| 1 | elitedesk-800g3   |  92   | 90  | 95  | 94   | 88  | --  | 10:32      |
+---------------------------------------------------------------------------+
| Quick Bench Script                                                        |
|   curl -s https://.../bench.sh | bash -s -- --server ... --token XXXX    |
+---------------------------------------------------------------------------+
```

## Page Device
```
Device: elitedesk-800g3
Location: Bureau   Tags: lab, dev

Hardware Summary:
  CPU: Intel i7‑6700 (4C/8T, 3.4 → 4.0 GHz)
  RAM: 64GB (4×16GB)
  GPU: Intel HD 530
  Storage: NVMe 1TB + HDD 2TB
  Network: eth0 1Gbps
  OS: Debian 12 / Kernel 6.1

Last Benchmark:
  Global Score: 92 [GREEN]
  CPU 90 | MEM 95 | DISK 94 | NET 88 | GPU --
  Run: 2025‑12‑07 10:32

Tabs: [Summary] [Benchmarks] [Documents] [Links]
```

---

# 5. API utilisée par le frontend

- `/api/devices`
- `/api/devices/{id}`
- `/api/devices/{id}/benchmarks`
- `/api/devices/{id}/docs`
- `/api/docs/{id}/download`
- `/api/devices/{id}/links`

---

# 6. Améliorations futures

- Graphiques d’évolution des scores (Chart.js)
- Mode mobile
- Compare devices
- Notifications en cas de baisse anormale de performance
