docs: Refonte complète du README avec documentation à jour

- 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
This commit is contained in:
Pierre Marx
2025-09-04 17:00:24 -04:00
parent 506968b62a
commit 69683fe1d0
2 changed files with 167 additions and 101 deletions

259
README.md
View File

@@ -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.
- [ ] 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