d377ed3ea82935a13295d73e74aa9221a833c846
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
# 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
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
{
"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
- Lancer l'application SimpleConnect
- Vérifier l'indicateur SignalR (vert = connecté)
- Saisir les identifiants :
- Code agent
- Mot de passe
- Sélection ou saisie manuelle du terminal téléphonique
- Option "Débloquer" si session bloquée
- 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
- Appel entrant :
- Notification avec informations patient
- Son de sonnerie
- Bouton "Prendre l'appel"
- Prise d'appel :
- Bascule automatique vers le bon centre
- Badge rouge sur l'onglet actif
- Mise à jour du statut d'appel
- Pendant l'appel :
- Prise de rendez-vous dans la webview
- Notes dans le panneau latéral
- Sauvegarde automatique
- 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/WebSocketlogout/quit-app: Déconnexion et fermetureget-terminal-list: Liste des terminaux disponiblessave-notes/get-notes: Gestion des notessignalr-status: État de la connexion temps réelget-app-version: Récupération de la version de l'applicationswitch-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 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
-
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
-
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
-
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
-
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
-
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
- Vérifier que le dossier
🚧 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 pour plus de détails.
🤝 Support
Pour toute question, problème ou suggestion :
SimpleConnect - Simplifier la gestion des rendez-vous médicaux pour les centres d'appels
Description
Releases
7