Files
SimpleClient-releases/README.md
Pierre Marx 60bad93f1e docs: Mise à jour du README.md vers la version 1.4.1
- Mise à jour de la version actuelle (1.2.15 → 1.4.1)
- Ajout de l'historique des versions 1.3.0, 1.3.1, 1.4.0 et 1.4.1
- Documentation du support dual SignalR/WebSocket avec fallback automatique
- Ajout des nouveaux fichiers connection-manager.js et websocket-adapter.js
- Mise à jour de la stack technologique (socket.io-client 4.8.1)
- Correction des canaux IPC (login-agent, get-terminal-list)
- Ajout de nouveaux canaux (get-app-version, switch-to-center, release-center)
- Documentation du logging détaillé dans ~/.simpleconnect-ng/signalr.log
- Enrichissement de la section dépannage (5 scénarios au lieu de 3)
- Correction "Débloquer" au lieu de "Forcer la déconnexion"
- Ajout de la saisie manuelle des postes téléphoniques
- Suppression des références aux fichiers de documentation inexistants

Le README.md reflète maintenant fidèlement l'état du code en version 1.4.1.
2025-10-21 15:16:35 -04:00

251 lines
8.9 KiB
Markdown

# SimpleConnect - Application de Gestion Centralisée des Plannings Médicaux
Application Electron destinée aux centres d'appels médicaux pour la gestion unifiée de multiples plateformes de prise de rendez-vous.
## 🎯 Fonctionnalités principales
### Gestion centralisée
- **Connexion unique** : Authentification centralisée avec sélection du terminal téléphonique
- **Multi-centres** : Accès simultané à plusieurs plateformes (Doctolib, MonDocteur, etc.)
- **Navigation par onglets** : Bascule rapide entre les différents centres assignés
- **Sessions isolées** : Connexions automatiques et indépendantes pour chaque centre
### Intégration CTI (Computer Telephony Integration)
- **Connexion SignalR/WebSocket** : Communication temps réel avec le serveur IPBX avec fallback automatique
- **Gestion des appels entrants** : Notifications et bascule automatique vers le bon centre
- **Terminaux téléphoniques** : Sélection dynamique ou saisie manuelle du poste lors de la connexion
- **Événements IPBX** : Support complet des événements téléphoniques (sonnerie, décrochage, raccrochage)
### Outils de productivité
- **Panneau de notes latéral** :
- Redimensionnable (280px à 600px de largeur)
- Sauvegarde automatique après 2 secondes d'inactivité
- Historique des 50 dernières versions
- Synchronisation localStorage + fichier serveur
- **Statistiques en temps réel** : Compteur d'appels et de rendez-vous
- **Mode développement** : Simulation d'appels pour les tests
## 🚀 Installation
### Prérequis
- Node.js version 16 ou supérieure
- npm ou yarn
- Windows, macOS ou Linux
### Installation rapide
```bash
# Cloner le repository
git clone https://github.com/simpleconnect/electron-app.git
cd simpleconnect-electron
# Installer les dépendances
npm install
# Lancer l'application
npm start
```
### Scripts disponibles
```bash
npm start # Lancer l'application en production
npm run dev # Mode développement avec DevTools
npm run build # Builder pour toutes les plateformes
npm run build:win # Builder pour Windows
npm run build:mac # Builder pour macOS
npm run build:linux # Builder pour Linux
```
## ⚙️ Configuration
### Fichier config.json
```json
{
"signalR": {
"enabled": true,
"serverUrl": "http://votre-serveur-signalr:8080/planningHub",
"reconnectInterval": 5000
}
}
```
### Variables d'environnement
- `NODE_ENV=development` : Active le mode développement avec DevTools
## 📱 Utilisation
### 1. Connexion agent
1. **Lancer l'application** SimpleConnect
2. **Vérifier l'indicateur SignalR** (vert = connecté)
3. **Saisir les identifiants** :
- Code agent
- Mot de passe
- Sélection ou saisie manuelle du terminal téléphonique
4. **Option "Débloquer"** si session bloquée
5. **Bouton "Quitter"** pour fermer l'application sans se connecter
### 2. Interface principale
- **Header** : Nom de l'agent et statut des appels
- **Onglets** : Un par centre assigné (badge pour appels actifs)
- **Zone centrale** : Webview du planning sélectionné
- **Panneau de notes** : Accessible via le bouton 📝
- **Bouton Quitter** : Déconnexion et fermeture de l'application
### 3. Gestion des appels
1. **Appel entrant** :
- Notification avec informations patient
- Son de sonnerie
- Bouton "Prendre l'appel"
2. **Prise d'appel** :
- Bascule automatique vers le bon centre
- Badge rouge sur l'onglet actif
- Mise à jour du statut d'appel
3. **Pendant l'appel** :
- Prise de rendez-vous dans la webview
- Notes dans le panneau latéral
- Sauvegarde automatique
4. **Fin d'appel** :
- Détection automatique du raccrochage
- Incrémentation des statistiques
- Notes conservées
## 🏗️ Architecture technique
### Stack technologique
- **Frontend** : HTML5, CSS3, JavaScript ES6+
- **Framework** : Electron 28.0.0
- **Communication temps réel** :
- SignalR (@microsoft/signalr 9.0.6)
- WebSocket avec fallback automatique (socket.io-client 4.8.1)
- ConnectionManager pour basculement transparent
- **UI Components** : Choices.js 11.1.0 pour les selects personnalisés
- **Stockage** : Fichiers JSON locaux + localStorage
### Structure du projet
```
simpleconnect-electron/
├── main.js # Process principal Electron et gestion SignalR/WebSocket
├── renderer.js # Interface utilisateur et gestion des webviews
├── connection-manager.js # Gestionnaire de connexion avec fallback automatique
├── websocket-adapter.js # Adaptateur SocketIO émulant l'API SignalR
├── index.html # Structure HTML de l'application
├── styles-modern.css # Styles CSS modernes avec gradients
├── config.json # Configuration SignalR et paramètres
├── docs/
│ └── changelog.md # Historique complet des versions
├── notes/ # Dossier de stockage des notes agents
└── package.json # Dépendances et métadonnées
```
### Communication IPC
Principaux canaux :
- `login-agent` : Authentification via SignalR/WebSocket
- `logout` / `quit-app` : Déconnexion et fermeture
- `get-terminal-list` : Liste des terminaux disponibles
- `save-notes` / `get-notes` : Gestion des notes
- `signalr-status` : État de la connexion temps réel
- `get-app-version` : Récupération de la version de l'application
- `switch-to-center` / `release-center` : Événements IPBX pour la gestion des appels
## 🔒 Sécurité
- **Isolation des sessions** : Partition Electron par centre
- **Connexion sécurisée** : Support HTTPS/WSS pour SignalR et WebSocket
- **Pas de stockage de mots de passe** : Authentification directe serveur
- **Logging détaillé** : Tous les événements SignalR dans `~/.simpleconnect-ng/signalr.log`
## 📊 Versions
### Version actuelle : 1.4.1
Voir [changelog.md](docs/changelog.md) pour l'historique complet des versions.
### Dernières nouveautés
#### v1.4.1 (2025-10-21)
- Bouton "Quitter" sur la page de connexion pour fermer l'application sans se connecter
- Style secondaire pour différenciation visuelle du bouton principal
#### v1.4.0 (2025-10-21)
- Affichage de la version dans l'interface (page de login et header principal)
- Version affichée dans la barre de titre native : "SimpleConnect vX.X.X"
#### v1.3.1 (2025-10-17)
- Saisie manuelle de postes téléphoniques personnalisés
- Validation de format numérique avec avertissement non-bloquant
- Affichage simplifié des terminaux (sans préfixe "Poste")
- Amélioration du contraste de l'élément survolé dans la liste déroulante
#### v1.3.0 (2025-09-12)
- Support dual SignalR/SocketIO avec fallback automatique
- Compatibilité totale avec backends .NET et Python
- ConnectionManager qui essaie SignalR puis bascule sur SocketIO
- WebSocketAdapter émulant l'API SignalR complète
#### v1.2.x
- Panneau de notes redimensionnable avec sauvegarde automatique
- Système de persistance amélioré avec historique (50 versions)
- Interface moderne avec animations fluides
- Logging complet des événements SignalR
## 🐛 Dépannage
### Problèmes courants
1. **SignalR/WebSocket ne se connecte pas** :
- Vérifier l'URL du serveur dans config.json
- Vérifier la connexion réseau
- Consulter les logs dans `~/.simpleconnect-ng/signalr.log`
- L'application bascule automatiquement sur WebSocket si SignalR échoue
- Mode développement (`npm run dev`) pour voir les erreurs console
2. **Session bloquée** :
- Utiliser l'option "Débloquer" sur la page de connexion
- Cette option force la déconnexion de la session précédente
- Redémarrer l'application si nécessaire
3. **Poste téléphonique personnalisé non reconnu** :
- Le système affiche un avertissement mais accepte tout numéro valide
- Vérifier que le poste est bien numérique (ex: 3001)
- Le serveur valide la disponibilité du terminal
4. **Webviews ne se chargent pas** :
- Vérifier la connexion internet
- Vérifier les URLs des centres dans la configuration serveur
- Utiliser le bouton Rafraîchir dans le header pour recharger la webview
- Mode développement pour voir les erreurs console
5. **Notes non sauvegardées** :
- Vérifier que le dossier `notes/` existe et est accessible
- La sauvegarde automatique se déclenche après 2 secondes d'inactivité
- Les notes sont aussi sauvegardées dans localStorage comme backup
## 🚧 Roadmap
- [ ] Support multi-langues
- [ ] Mode sombre/clair
- [ ] Export des statistiques en CSV/PDF
- [ ] Intégration avec plus de plateformes de RDV
- [ ] Application mobile companion
- [ ] Dashboard manager avec métriques temps réel
## 📝 Licence
MIT - Voir le fichier [LICENSE](LICENSE) pour plus de détails.
## 🤝 Support
Pour toute question, problème ou suggestion :
- Créer une issue sur [GitHub](https://github.com/simpleconnect/electron-app/issues)
- Documentation complète dans le dossier [docs/](docs/)
---
**SimpleConnect** - Simplifier la gestion des rendez-vous médicaux pour les centres d'appels