530c3a10b2
- 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
154 lines
4.2 KiB
Markdown
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**
|