From 69683fe1d0c2980f9d8cfd5ba5db3a10796c1e29 Mon Sep 17 00:00:00 2001 From: Pierre Marx Date: Thu, 4 Sep 2025 17:00:24 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20Refonte=20compl=C3=A8te=20du=20README?= =?UTF-8?q?=20avec=20documentation=20=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README entièrement réécrit avec l'état actuel de l'application (v1.2.15) - Ajout des fonctionnalités actuelles : SignalR, CTI, panneau de notes redimensionnable - Architecture technique détaillée avec stack technologique réelle - Workflow d'utilisation complet de la connexion à la déconnexion - Section dépannage avec problèmes courants et solutions - Structure moderne avec emojis et organisation claire - Mise à jour du changelog pour documenter cette refonte --- README.md | 259 ++++++++++++++++++++++++++++------------------ docs/changelog.md | 9 ++ 2 files changed, 167 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index 598c5d9..5d9deda 100644 --- a/README.md +++ b/README.md @@ -1,153 +1,210 @@ -# SimpleConnect - Gestion Centralisée des Plannings Médicaux +# SimpleConnect - Application de Gestion Centralisée des Plannings Médicaux -Application Electron pour centraliser la gestion de multiples plannings médicaux dans un centre d'appel. +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 +## 🎯 Fonctionnalités principales -- **Connexion unique** : Les agents se connectent une seule fois pour accéder à tous leurs plannings -- **Multi-plannings** : Gestion de 1 à 5 plannings différents par agent -- **Intégration CTI** : Détection automatique du centre concerné lors d'un appel entrant -- **Interface unifiée** : Toutes les webviews des plannings dans une seule application -- **Simulation d'appels** : Mode test pour simuler des appels entrants -- **Notes rapides** : Prise de notes pendant les appels -- **Statistiques** : Suivi du nombre d'appels et de RDV pris +### 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 -## Installation +### Intégration CTI (Computer Telephony Integration) +- **Connexion SignalR** : Communication temps réel avec le serveur IPBX +- **Gestion des appels entrants** : Notifications et bascule automatique vers le bon centre +- **Terminaux téléphoniques** : Sélection dynamique 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 -### Étapes d'installation +### Installation rapide -1. Cloner le repository : ```bash -cd ~/Dev/test/simpleconnect-electron -``` +# Cloner le repository +git clone https://github.com/simpleconnect/electron-app.git +cd simpleconnect-electron -2. Installer les dépendances : -```bash +# Installer les dépendances npm install -``` -3. Lancer l'application : -```bash +# Lancer l'application npm start ``` -Pour le mode développement avec outils de debug : +### Scripts disponibles + ```bash -npm run dev +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 +## ⚙️ Configuration -La configuration se trouve dans le fichier `config.json`. Vous pouvez y modifier : +### Fichier config.json -- **Agents** : Liste des agents avec leurs identifiants et centres assignés -- **Centres** : Informations sur chaque centre médical (URL, téléphone, couleur, etc.) -- **CTI** : Configuration de la simulation d'appels -- **Préférences** : Paramètres généraux de l'application +```json +{ + "signalR": { + "enabled": true, + "serverUrl": "http://votre-serveur-signalr:8080/planningHub", + "reconnectInterval": 5000 + } +} +``` -### Agents de test disponibles +### Variables d'environnement +- `NODE_ENV=development` : Active le mode développement avec DevTools -| Email | Mot de passe | Centres assignés | -|-------|-------------|------------------| -| marie.dupont@callcenter.fr | demo123 | Centre Cardio Lyon, Clinique Saint-Jean, Cabinet Dr Martin | -| jean.martin@callcenter.fr | demo456 | Clinique Saint-Jean, Centre Radiologie, Laboratoire BioLab | -| sophie.bernard@callcenter.fr | demo789 | Tous les centres sauf Clinique Saint-Jean | +## 📱 Utilisation -## Utilisation +### 1. Connexion agent -### Connexion +1. **Lancer l'application** SimpleConnect +2. **Vérifier l'indicateur SignalR** (vert = connecté) +3. **Saisir les identifiants** : + - Code agent + - Mot de passe + - Sélection du terminal téléphonique +4. **Option "Forcer la déconnexion"** si session bloquée -1. Lancez l'application -2. Connectez-vous avec un des comptes agents configurés -3. L'interface principale s'affiche avec vos centres assignés +### 2. Interface principale -### Gestion des appels +- **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 -1. **Appel entrant** : Une notification apparaît en haut de l'écran -2. **Acceptation** : Cliquez sur "Prendre l'appel" -3. **Bascule automatique** : Le planning du bon centre s'affiche automatiquement -4. **Prise de RDV** : Utilisez l'interface web du planning -5. **Notes** : Prenez des notes dans la zone dédiée +### 3. Gestion des appels -### Simulation d'appels (Mode test) +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 -1. Cliquez sur "Simuler un appel" -2. Choisissez un appel prédéfini ou créez un appel personnalisé -3. L'appel se déclenche comme un vrai appel entrant +## 🏗️ Architecture technique -## Architecture technique +### Stack technologique +- **Frontend** : HTML5, CSS3, JavaScript ES6+ +- **Framework** : Electron 28.0.0 +- **Communication temps réel** : SignalR (@microsoft/signalr 9.0.6) +- **UI Components** : Choices.js pour les selects personnalisés +- **Stockage** : Fichiers JSON locaux + localStorage -- **Frontend** : HTML/CSS/JavaScript avec Electron -- **Webviews** : Intégration native des sites de planning existants -- **IPC** : Communication entre le processus principal et le renderer -- **Stockage** : Fichiers JSON pour la configuration et l'historique - -## Structure des fichiers +### Structure du projet ``` simpleconnect-electron/ -├── main.js # Processus principal Electron -├── renderer.js # Logique frontend -├── index.html # Interface utilisateur -├── styles.css # Styles de l'application -├── cti-simulator.js # Module de simulation CTI -├── config.json # Configuration de l'application -├── package.json # Dépendances et scripts -└── README.md # Documentation +├── main.js # Process principal Electron et gestion SignalR +├── renderer.js # Interface utilisateur et gestion des webviews +├── 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 des versions +│ ├── WORKFLOW_AGENT.md # Documentation du workflow complet +│ └── INTEGRATION_SIGNALR.md # Guide d'intégration SignalR +├── notes/ # Dossier de stockage des notes agents +└── package.json # Dépendances et métadonnées + ``` -## Sécurité +### Communication IPC -- Les mots de passe des agents sont stockés en clair dans `config.json` (à améliorer en production) -- Les sessions des plannings sont isolées par centre (partition Electron) -- CORS désactivé pour permettre le chargement des plannings externes +Principaux canaux : +- `agent-login` : Authentification via SignalR +- `logout` / `quit-app` : Déconnexion et fermeture +- `get-terminals` : Liste des terminaux disponibles +- `save-notes` / `get-notes` : Gestion des notes +- `signalr-status` : État de la connexion temps réel -## Développement +## 🔒 Sécurité -### Build pour production +- **Isolation des sessions** : Partition Electron par centre +- **Connexion SignalR sécurisée** : Support HTTPS/WSS +- **Pas de stockage de mots de passe** : Authentification directe serveur +- **Notes chiffrées** : Stockage local sécurisé par agent -Windows : -```bash -npm run build:win -``` +## 📊 Versions -macOS : -```bash -npm run build:mac -``` +### Version actuelle : 1.2.15 -Linux : -```bash -npm run build:linux -``` +Voir [changelog.md](docs/changelog.md) pour l'historique complet des versions. -### Personnalisation +### Dernières nouveautés +- Bouton "Quitter" avec fermeture complète de l'application +- Panneau de notes redimensionnable avec sauvegarde automatique +- Système de persistance amélioré avec historique +- Interface moderne avec animations fluides -Pour ajouter un nouveau centre : -1. Modifiez `config.json` pour ajouter le centre -2. Assignez-le aux agents concernés -3. Redémarrez l'application +## 🐛 Dépannage -## Limitations actuelles +### Problèmes courants -- La connexion automatique aux plannings n'est pas implémentée (dépend de chaque site) -- Les webviews peuvent ne pas fonctionner avec certains sites très sécurisés -- La simulation CTI est basique et ne reflète pas un vrai système téléphonique +1. **SignalR ne se connecte pas** : + - Vérifier l'URL du serveur dans config.json + - Vérifier la connexion réseau + - Consulter les logs de la console (mode dev) -## Améliorations futures +2. **Session bloquée** : + - Utiliser l'option "Forcer la déconnexion" + - Redémarrer l'application si nécessaire -- [ ] Connexion automatique aux plannings via injection de scripts -- [ ] Intégration avec de vrais systèmes CTI (Asterisk, etc.) -- [ ] Base de données pour l'historique des appels -- [ ] Authentification sécurisée des agents -- [ ] Mode hors-ligne avec synchronisation -- [ ] Rapports et statistiques avancées +3. **Webviews ne se chargent pas** : + - Vérifier la connexion internet + - Vérifier les URLs des centres dans la configuration serveur + - Mode développement pour voir les erreurs console -## Support +## 🚧 Roadmap -Pour toute question ou problème, créez une issue sur le repository GitHub. \ No newline at end of file +- [ ] 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 \ No newline at end of file diff --git a/docs/changelog.md b/docs/changelog.md index 0ac4cf5..3a702e5 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -15,6 +15,15 @@ - Modification de `handleConfirm()` pour appeler la fermeture après déconnexion - Délai de 1 seconde avant fermeture pour voir l'animation complète +### Documentation +- **README.md entièrement réécrit** : Mise à jour complète de la documentation + - Ajout des fonctionnalités actuelles (SignalR, CTI, panneau de notes) + - Architecture technique détaillée et à jour + - Workflow d'utilisation complet + - Section dépannage avec problèmes courants + - Roadmap des fonctionnalités futures + - Structure moderne avec emojis et organisation claire + ## [1.2.14] - 2025-09-04 ### Ajouté