Files
rpa_vision_v3/visual_workflow_builder/README.md
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

282 lines
7.4 KiB
Markdown

# Visual Workflow Builder
Interface graphique pour créer des workflows RPA par glisser-déposer, sans écrire de code.
## 🚀 Démarrage Ultra-Rapide
### Méthode Simple (Recommandée)
```bash
# Configuration initiale (une seule fois)
./launch.sh setup
# Démarrer l'application complète
./launch.sh start
# Ouvrir http://localhost:3000 dans votre navigateur
```
**Sur Windows :**
```cmd
# Configuration initiale (une seule fois)
launch.bat setup
# Démarrer l'application complète
launch.bat start
```
### Prérequis
- Python 3.8+
- Node.js 16+
- npm
## 🎮 Commandes Principales
### Script de Lancement Unifié
Le script `launch.sh` (ou `launch.bat` sur Windows) simplifie toutes les opérations :
```bash
# Démarrer en mode développement (avec hot reload)
./launch.sh start --dev
# Démarrer en mode production
./launch.sh start --prod
# Arrêter l'application
./launch.sh stop
# Redémarrer
./launch.sh restart
# Voir le statut
./launch.sh status
# Voir les logs en temps réel
./launch.sh logs
# Lancer tous les tests
./launch.sh test
# Configuration initiale
./launch.sh setup
# Nettoyer les fichiers temporaires
./launch.sh clean
# Aide complète
./launch.sh --help
```
### Ports Personnalisés
```bash
# Frontend sur port 3001, backend sur port 5002
./launch.sh start --port 3001 --backend-port 5002
```
## 🧪 Tests
### Tests Automatisés
```bash
# Tous les tests
./launch.sh test
# Tests spécifiques
./test_import_export.sh # Test import/export
./test_zoom_pan.sh # Test zoom et panoramique
```
### Tests Manuels
1. **Interface utilisateur** : http://localhost:3000
2. **API Health Check** : http://localhost:5001/health
3. **Import/Export** : Utilisez les boutons dans l'interface
4. **Zoom/Pan** : Molette de souris + Ctrl+Drag
## Architecture
Le projet est divisé en deux parties principales :
### Frontend (React + TypeScript)
- **Framework**: React 18 avec TypeScript
- **Canvas**: react-flow-renderer pour le rendu des graphes avec zoom/pan personnalisé
- **State Management**: Hooks personnalisés avec Undo/Redo
- **UI Components**: Composants personnalisés + Material-UI
- **Real-time**: Socket.IO client pour synchronisation d'exécution
- **Import/Export**: Support JSON/YAML avec validation
- **Build**: Create React App avec TypeScript
### Backend (Flask + Python)
- **Framework**: Flask avec Flask-SocketIO
- **Database**: SQLAlchemy (SQLite pour dev, PostgreSQL pour prod)
- **Validation**: JSON Schema + validation personnalisée
- **Import/Export**: API REST avec support multi-formats
- **Cache**: Redis (optionnel)
- **Testing**: Pytest + tests d'intégration
## Structure du Projet
```
visual_workflow_builder/
├── launch.sh # 🚀 Script de lancement principal (Linux/Mac)
├── launch.bat # 🚀 Script de lancement principal (Windows)
├── backend/ # API Flask
│ ├── api/
│ │ ├── workflows.py # CRUD workflows
│ │ ├── import_export.py # Import/Export
│ │ ├── templates.py # Templates
│ │ └── websocket_handlers.py # WebSocket
│ ├── models/ # Modèles de données
│ ├── services/ # Logique métier
│ └── app.py # Point d'entrée
├── frontend/ # Interface React + TypeScript
│ ├── src/
│ │ ├── components/
│ │ │ ├── Canvas/ # Canvas principal avec zoom/pan
│ │ │ ├── ZoomControls/ # Contrôles de zoom
│ │ │ ├── ImportExport/ # Import/Export UI
│ │ │ └── UndoRedoToolbar/ # Undo/Redo
│ │ ├── hooks/
│ │ │ ├── useZoomPan.ts # Hook zoom/panoramique
│ │ │ ├── useWorkflowWithUndo.ts # Workflow + Undo
│ │ │ └── useExecutionSync.ts # Sync exécution
│ │ ├── utils/
│ │ │ ├── ImportExport.ts # Logique import/export
│ │ │ └── UndoManager.ts # Gestionnaire Undo/Redo
│ │ └── types/ # Types TypeScript
│ └── public/
├── test_import_export.sh # Tests import/export
├── test_zoom_pan.sh # Tests zoom/panoramique
└── docs/ # Documentation
```
## Installation
### Prérequis
- Node.js 18+ et npm
- Python 3.10+
- Redis (optionnel pour dev, requis pour prod)
### Frontend
```bash
cd frontend
npm install
npm start # Démarre le serveur de développement sur http://localhost:3000
```
### Backend
```bash
cd backend
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Configurer les variables d'environnement
python app.py # Démarre le serveur Flask sur http://localhost:5001
```
## Développement
### Frontend
```bash
npm start # Serveur de développement avec hot reload
npm run build # Build de production
npm test # Exécuter les tests
npm run lint # Vérifier le code avec ESLint
npm run type-check # Vérifier les types TypeScript
```
### Backend
```bash
python app.py # Démarrer le serveur
pytest # Exécuter tous les tests
pytest tests/unit # Tests unitaires seulement
pytest -m property # Tests property-based seulement
pytest --cov # Tests avec couverture de code
black . # Formater le code
flake8 . # Vérifier le style
mypy . # Vérifier les types
```
## Tests
### Frontend
- **Tests unitaires**: Jest + React Testing Library
- **Coverage**: Minimum 70% requis
### Backend
- **Tests unitaires**: Pytest
- **Tests d'intégration**: Pytest avec fixtures
- **Tests property-based**: Hypothesis
- **Coverage**: Minimum 70% requis
## Configuration
### Variables d'Environnement Backend
Voir `.env.example` pour la liste complète. Les principales :
- `FLASK_ENV`: development ou production
- `SECRET_KEY`: Clé secrète pour les sessions
- `DATABASE_URL`: URL de la base de données
- `REDIS_URL`: URL Redis pour le cache
- `CORS_ORIGINS`: Origines autorisées pour CORS
### Configuration Frontend
Le frontend se configure via `webpack.config.js` et les variables d'environnement peuvent être passées au build.
## Déploiement
### Production
1. **Frontend**: Build et déploiement sur CDN ou serveur web
```bash
npm run build
# Les fichiers sont dans dist/
```
2. **Backend**: Déploiement avec Gunicorn + Nginx
```bash
gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
```
3. **Base de données**: Migrer vers PostgreSQL
4. **Cache**: Configurer Redis
5. **Monitoring**: Configurer logs et métriques
## Roadmap
### Phase 1: MVP (4-6 semaines)
- ✅ Structure du projet configurée
- ⏳ API REST de base
- ⏳ Canvas avec drag & drop
- ⏳ Nodes essentiels
- ⏳ Exécution simple
### Phase 2: Fonctionnalités Avancées (4-6 semaines)
- ⏳ WebSocket temps réel
- ⏳ Templates avancés
- ⏳ Undo/Redo
- ⏳ Zoom/Pan optimisé
- ⏳ Variables management
### Phase 3: Production (2-4 semaines)
- ⏳ Optimisations performance
- ⏳ Sécurité renforcée
- ⏳ Documentation complète
- ⏳ Déploiement production
## Contribution
Voir le document de design complet dans `.kiro/specs/visual-workflow-builder/design.md` pour les détails d'architecture et les propriétés de correction à respecter.
## License
MIT