Files
PTT-Live/electron/CHANGELOG.md
T
benoit 530c3a10b2 feat: application desktop Electron avec interface graphique complète
- Main Process spawn serveur automatiquement avec IPC sécurisé
- Dashboard temps réel : stats, utilisateurs, QR Code
- Configuration audio : devices, sample rate, bitrate, jitter buffer
- Gestion groupes : CRUD complet via API admin
- Monitoring : logs temps réel filtrables par niveau
- Notifications : toast visuelles avec auto-dismiss
- Packaging : electron-builder pour macOS (.dmg) et Linux (.deb/.AppImage)
- Documentation : README technique, QUICKSTART, CHANGELOG, guide utilisateur

Structure :
- electron/main.js (333 lignes) : Main Process + spawn serveur
- electron/preload.js (31 lignes) : IPC bridge sécurisé
- electron/ui/index.html (187 lignes) : interface dashboard
- electron/ui/styles.css (556 lignes) : dark theme
- electron/ui/app.js (626 lignes) : logic frontend

Total : 1733 lignes de code

Lancement : ./start-desktop.sh

API utilisées : /admin/stats, /admin/users, /admin/groups, /admin/config, /admin/devices/list

TODO : WebSocket VU-mètres, icônes, tray menu, graphiques monitoring
2026-06-19 11:04:29 +02:00

154 lines
4.2 KiB
Markdown

# PTT Live Desktop - Changelog
## v0.3.0 - 2026-06-19
### 🎉 Première version de l'application desktop Electron
#### ✨ Nouvelles Fonctionnalités
**Interface Electron**
- Application desktop native (macOS/Linux)
- Main Process spawn serveur Node.js automatiquement
- IPC sécurisé via contextBridge (preload.js)
- Démarrage/arrêt serveur depuis l'interface
- Tray icon placeholder (à compléter)
**Dashboard**
- Stats temps réel (uptime, utilisateurs, connexions)
- Liste utilisateurs connectés avec groupes
- Génération QR Code automatique (détection IP réseau)
- Bouton copier URL clients
- Polling automatique toutes les 2 secondes
**Configuration Audio**
- Sélection devices input/output (auto-détectés)
- Configuration sample rate (44.1/48/96 kHz)
- Bitrate par défaut (32-320 kbps)
- Jitter buffer (20-100 ms)
- Sauvegarde dans config.yaml
**Gestion Groupes**
- Liste groupes existants
- Création nouveau groupe (nom + bitrate)
- Modification/suppression (via API admin)
- Synchronisation config.yaml
**Monitoring**
- Logs serveur en temps réel
- Filtrage par niveau (error/warn/info/debug)
- Bouton effacer logs
- Format timestamp + niveau + message
**Notifications**
- Toast visuelles (success/error/warning/info)
- Auto-dismiss 5 secondes
- Bouton fermeture manuelle
- Animation slide-in
#### 🛠️ Technique
**Stack**
- Electron 28.0.0
- electron-builder 24.9.1
- qrcode 1.5.3 (via CDN)
- HTML/CSS/JS vanilla (pas de framework)
**Architecture**
- Main Process : spawn serveur, IPC handlers
- Renderer Process : dashboard, fetch API admin
- Communication : IPC + HTTP vers localhost:3000
**API Utilisées**
- `GET /admin/stats` : dashboard metrics
- `GET /admin/users` : utilisateurs
- `GET /admin/groups` : groupes
- `POST /admin/groups` : créer groupe
- `GET /admin/config` : config complète
- `PUT /admin/config/audio` : config audio
- `GET /admin/devices/list` : auto-détection devices
- `POST /admin/audio/device` : sélectionner device
- `GET /health` : health check
**Build**
- electron-builder configuré
- macOS : .dmg + .app
- Linux : .deb + .AppImage
- Scripts : `npm run build:mac` / `build:linux`
#### 📝 Documentation
- [DESKTOP-APP.md](DESKTOP-APP.md) : doc complète (architecture, API, debug)
- [QUICKSTART.md](QUICKSTART.md) : guide démarrage rapide
- [README.md](README.md) : intégration Electron dans README principal
- [CLAUDE.md](../CLAUDE.md) : section Application Desktop ajoutée
#### 🚧 TODO / Limitations
**À implémenter** :
- [ ] WebSocket audio levels (VU-mètres temps réel)
- [ ] Vraies icônes (icon.icns / icon.png)
- [ ] Tray icon fonctionnel avec menu
- [ ] Graphiques monitoring (Chart.js)
- [ ] Export logs (CSV/JSON)
- [ ] Matrice routing audio (drag & drop)
- [ ] Auth admin (mot de passe)
- [ ] Thème dark/light toggle
- [ ] Auto-update (electron-updater)
- [ ] Tests (Spectron/Playwright)
**Limitations connues** :
- QR Code utilise CDN (pas de lib locale)
- Pas de CSP (Content-Security-Policy)
- Pas de signature code (notarization macOS)
- Tray icon pas implémenté (commenté dans main.js)
#### 🔧 Installation
```bash
# Depuis la racine du projet
./start-desktop.sh
# OU depuis electron/
cd electron
npm install
npm start
```
#### 🏗️ Structure Fichiers
```
electron/
├── package.json # Config Electron
├── main.js # Main Process (585 lignes)
├── preload.js # IPC bridge (40 lignes)
├── README.md # Doc technique
├── QUICKSTART.md # Guide démarrage
├── CHANGELOG.md # Ce fichier
└── ui/
├── index.html # Interface (185 lignes)
├── styles.css # Styles (557 lignes)
└── app.js # Logic frontend (627 lignes)
```
---
## Prochaine version (v0.3.1)
### 🎯 Priorités
1. **VU-mètres WebSocket** : connexion `/audio-levels`
2. **Icônes** : créer icon.icns + icon.png + tray-icon.png
3. **Tray menu** : implémenter menu contextuel
4. **Tests** : premiers tests Electron
### 💡 Idées
- Graphiques latence/bande passante (Chart.js)
- Notifications desktop (Electron Notification API)
- Matrice routing visuelle
- Export config (JSON/YAML)
---
**Développé avec Claude Code**