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:
259
README.md
259
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
|
### Gestion centralisée
|
||||||
- **Multi-plannings** : Gestion de 1 à 5 plannings différents par agent
|
- **Connexion unique** : Authentification centralisée avec sélection du terminal téléphonique
|
||||||
- **Intégration CTI** : Détection automatique du centre concerné lors d'un appel entrant
|
- **Multi-centres** : Accès simultané à plusieurs plateformes (Doctolib, MonDocteur, etc.)
|
||||||
- **Interface unifiée** : Toutes les webviews des plannings dans une seule application
|
- **Navigation par onglets** : Bascule rapide entre les différents centres assignés
|
||||||
- **Simulation d'appels** : Mode test pour simuler des appels entrants
|
- **Sessions isolées** : Connexions automatiques et indépendantes pour chaque centre
|
||||||
- **Notes rapides** : Prise de notes pendant les appels
|
|
||||||
- **Statistiques** : Suivi du nombre d'appels et de RDV pris
|
|
||||||
|
|
||||||
## 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
|
### Prérequis
|
||||||
|
|
||||||
- Node.js version 16 ou supérieure
|
- Node.js version 16 ou supérieure
|
||||||
- npm ou yarn
|
- npm ou yarn
|
||||||
|
- Windows, macOS ou Linux
|
||||||
|
|
||||||
### Étapes d'installation
|
### Installation rapide
|
||||||
|
|
||||||
1. Cloner le repository :
|
|
||||||
```bash
|
```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 :
|
# Installer les dépendances
|
||||||
```bash
|
|
||||||
npm install
|
npm install
|
||||||
```
|
|
||||||
|
|
||||||
3. Lancer l'application :
|
# Lancer l'application
|
||||||
```bash
|
|
||||||
npm start
|
npm start
|
||||||
```
|
```
|
||||||
|
|
||||||
Pour le mode développement avec outils de debug :
|
### Scripts disponibles
|
||||||
|
|
||||||
```bash
|
```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
|
```json
|
||||||
- **Centres** : Informations sur chaque centre médical (URL, téléphone, couleur, etc.)
|
{
|
||||||
- **CTI** : Configuration de la simulation d'appels
|
"signalR": {
|
||||||
- **Préférences** : Paramètres généraux de l'application
|
"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 |
|
## 📱 Utilisation
|
||||||
|-------|-------------|------------------|
|
|
||||||
| 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
|
### 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. Interface principale
|
||||||
2. Connectez-vous avec un des comptes agents configurés
|
|
||||||
3. L'interface principale s'affiche avec vos centres assignés
|
|
||||||
|
|
||||||
### 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
|
### 3. Gestion des appels
|
||||||
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
|
|
||||||
|
|
||||||
### 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"
|
## 🏗️ Architecture technique
|
||||||
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
|
### 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
|
### Structure du projet
|
||||||
- **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
|
|
||||||
|
|
||||||
```
|
```
|
||||||
simpleconnect-electron/
|
simpleconnect-electron/
|
||||||
├── main.js # Processus principal Electron
|
├── main.js # Process principal Electron et gestion SignalR
|
||||||
├── renderer.js # Logique frontend
|
├── renderer.js # Interface utilisateur et gestion des webviews
|
||||||
├── index.html # Interface utilisateur
|
├── index.html # Structure HTML de l'application
|
||||||
├── styles.css # Styles de l'application
|
├── styles-modern.css # Styles CSS modernes avec gradients
|
||||||
├── cti-simulator.js # Module de simulation CTI
|
├── config.json # Configuration SignalR et paramètres
|
||||||
├── config.json # Configuration de l'application
|
├── docs/
|
||||||
├── package.json # Dépendances et scripts
|
│ ├── changelog.md # Historique des versions
|
||||||
└── README.md # Documentation
|
│ ├── 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)
|
Principaux canaux :
|
||||||
- Les sessions des plannings sont isolées par centre (partition Electron)
|
- `agent-login` : Authentification via SignalR
|
||||||
- CORS désactivé pour permettre le chargement des plannings externes
|
- `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 :
|
## 📊 Versions
|
||||||
```bash
|
|
||||||
npm run build:win
|
|
||||||
```
|
|
||||||
|
|
||||||
macOS :
|
### Version actuelle : 1.2.15
|
||||||
```bash
|
|
||||||
npm run build:mac
|
|
||||||
```
|
|
||||||
|
|
||||||
Linux :
|
Voir [changelog.md](docs/changelog.md) pour l'historique complet des versions.
|
||||||
```bash
|
|
||||||
npm run build:linux
|
|
||||||
```
|
|
||||||
|
|
||||||
### 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 :
|
## 🐛 Dépannage
|
||||||
1. Modifiez `config.json` pour ajouter le centre
|
|
||||||
2. Assignez-le aux agents concernés
|
|
||||||
3. Redémarrez l'application
|
|
||||||
|
|
||||||
## Limitations actuelles
|
### Problèmes courants
|
||||||
|
|
||||||
- La connexion automatique aux plannings n'est pas implémentée (dépend de chaque site)
|
1. **SignalR ne se connecte pas** :
|
||||||
- Les webviews peuvent ne pas fonctionner avec certains sites très sécurisés
|
- Vérifier l'URL du serveur dans config.json
|
||||||
- La simulation CTI est basique et ne reflète pas un vrai système téléphonique
|
- 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
|
3. **Webviews ne se chargent pas** :
|
||||||
- [ ] Intégration avec de vrais systèmes CTI (Asterisk, etc.)
|
- Vérifier la connexion internet
|
||||||
- [ ] Base de données pour l'historique des appels
|
- Vérifier les URLs des centres dans la configuration serveur
|
||||||
- [ ] Authentification sécurisée des agents
|
- Mode développement pour voir les erreurs console
|
||||||
- [ ] Mode hors-ligne avec synchronisation
|
|
||||||
- [ ] Rapports et statistiques avancées
|
|
||||||
|
|
||||||
## 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
|
||||||
@@ -15,6 +15,15 @@
|
|||||||
- Modification de `handleConfirm()` pour appeler la fermeture après déconnexion
|
- Modification de `handleConfirm()` pour appeler la fermeture après déconnexion
|
||||||
- Délai de 1 seconde avant fermeture pour voir l'animation complète
|
- 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
|
## [1.2.14] - 2025-09-04
|
||||||
|
|
||||||
### Ajouté
|
### Ajouté
|
||||||
|
|||||||
Reference in New Issue
Block a user