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>
This commit is contained in:
Dom
2026-01-29 11:23:51 +01:00
parent 21bfa3b337
commit a27b74cf22
1595 changed files with 412691 additions and 400 deletions

View File

@@ -0,0 +1,348 @@
@echo off
REM Script de lancement pour Windows - Visual Workflow Builder
setlocal enabledelayedexpansion
REM Couleurs (limitées sur Windows)
set "RED=[91m"
set "GREEN=[92m"
set "YELLOW=[93m"
set "BLUE=[94m"
set "PURPLE=[95m"
set "CYAN=[96m"
set "NC=[0m"
REM Variables par défaut
set "MODE=dev"
set "FRONTEND_PORT=3000"
set "BACKEND_PORT=5001"
set "COMMAND="
REM Fonction d'aide
:show_help
echo %BLUE%Visual Workflow Builder - Script de Lancement Windows%NC%
echo.
echo Usage: %0 [COMMAND] [OPTIONS]
echo.
echo %YELLOW%Commandes:%NC%
echo start Demarrer l'application complete (backend + frontend)
echo stop Arreter l'application complete
echo status Afficher le statut des services
echo setup Configuration initiale
echo test Lancer les tests
echo clean Nettoyer les fichiers temporaires
echo.
echo %YELLOW%Options:%NC%
echo --dev Mode developpement (defaut)
echo --prod Mode production
echo --help Afficher cette aide
echo.
echo %YELLOW%Exemples:%NC%
echo %0 start --dev # Demarrer en mode developpement
echo %0 start --prod # Demarrer en mode production
echo %0 status # Verifier le statut
echo.
goto :eof
REM Parser les arguments
:parse_args
if "%~1"=="" goto :end_parse
if "%~1"=="start" set "COMMAND=start" & shift & goto :parse_args
if "%~1"=="stop" set "COMMAND=stop" & shift & goto :parse_args
if "%~1"=="status" set "COMMAND=status" & shift & goto :parse_args
if "%~1"=="setup" set "COMMAND=setup" & shift & goto :parse_args
if "%~1"=="test" set "COMMAND=test" & shift & goto :parse_args
if "%~1"=="clean" set "COMMAND=clean" & shift & goto :parse_args
if "%~1"=="--dev" set "MODE=dev" & shift & goto :parse_args
if "%~1"=="--prod" set "MODE=prod" & shift & goto :parse_args
if "%~1"=="--help" call :show_help & exit /b 0
echo %RED%Option inconnue: %~1%NC%
call :show_help
exit /b 1
:end_parse
REM Si aucune commande, afficher l'aide
if "%COMMAND%"=="" (
call :show_help
exit /b 1
)
REM Fichiers PID pour Windows (utilisation de fichiers temporaires)
set "BACKEND_PID_FILE=%TEMP%\vwb_backend.pid"
set "FRONTEND_PID_FILE=%TEMP%\vwb_frontend.pid"
REM Fonction pour vérifier si un processus est en cours
:is_running
set "pid_file=%~1"
if exist "%pid_file%" (
set /p pid=<"%pid_file%"
tasklist /FI "PID eq !pid!" 2>nul | find "!pid!" >nul
if !errorlevel! equ 0 (
exit /b 0
) else (
del "%pid_file%" 2>nul
exit /b 1
)
)
exit /b 1
REM Fonction pour arrêter un processus
:stop_process
set "pid_file=%~1"
set "name=%~2"
call :is_running "%pid_file%"
if !errorlevel! equ 0 (
set /p pid=<"%pid_file%"
echo %YELLOW%Arret de %name% (PID: !pid!)...%NC%
taskkill /PID !pid! /F >nul 2>&1
del "%pid_file%" 2>nul
echo %GREEN%%name% arrete%NC%
) else (
echo %CYAN%%name% n'est pas en cours d'execution%NC%
)
goto :eof
REM Commande START
:cmd_start
echo %PURPLE%🚀 Demarrage de Visual Workflow Builder%NC%
echo %CYAN%Mode: %MODE%%NC%
echo %CYAN%Frontend: http://localhost:%FRONTEND_PORT%%NC%
echo %CYAN%Backend: http://localhost:%BACKEND_PORT%%NC%
echo.
REM Démarrer le backend
echo %BLUE%Demarrage du backend sur le port %BACKEND_PORT%...%NC%
cd backend
REM Vérifier l'environnement virtuel
if not exist "venv" (
echo %YELLOW%Creation de l'environnement virtuel...%NC%
python -m venv venv
)
REM Activer l'environnement virtuel
call venv\Scripts\activate.bat
REM Installer les dépendances si nécessaire
if not exist ".deps_installed" (
echo %YELLOW%Installation des dependances Python...%NC%
pip install -r requirements.txt
echo. > .deps_installed
)
REM Démarrer le backend
set "PORT=%BACKEND_PORT%"
set "FLASK_ENV=%MODE%"
start /B python app.py > ..\backend.log 2>&1
for /f "tokens=2" %%i in ('tasklist /FI "IMAGENAME eq python.exe" /FO CSV ^| find "python.exe"') do (
echo %%i > "%BACKEND_PID_FILE%"
goto :backend_started
)
:backend_started
cd ..
REM Attendre que le backend soit prêt
echo %YELLOW%Attente du demarrage du backend...%NC%
timeout /t 10 /nobreak >nul
REM Démarrer le frontend
echo %BLUE%Demarrage du frontend sur le port %FRONTEND_PORT%...%NC%
cd frontend
REM Installer les dépendances si nécessaire
if not exist "node_modules" (
echo %YELLOW%Installation des dependances Node.js...%NC%
npm install
)
REM Configurer les variables d'environnement
set "PORT=%FRONTEND_PORT%"
set "REACT_APP_API_URL=http://localhost:%BACKEND_PORT%"
if "%MODE%"=="dev" (
start /B npm start > ..\frontend.log 2>&1
) else (
if not exist "build" (
echo %YELLOW%Build de production...%NC%
npm run build
)
start /B npx serve -s build -l %FRONTEND_PORT% > ..\frontend.log 2>&1
)
REM Sauvegarder le PID (approximatif pour Windows)
for /f "tokens=2" %%i in ('tasklist /FI "IMAGENAME eq node.exe" /FO CSV ^| find "node.exe"') do (
echo %%i > "%FRONTEND_PID_FILE%"
goto :frontend_started
)
:frontend_started
cd ..
echo.
echo %GREEN%✅ Application demarree avec succes!%NC%
echo %CYAN%🌐 Ouvrez http://localhost:%FRONTEND_PORT% dans votre navigateur%NC%
echo %CYAN%📊 API disponible sur http://localhost:%BACKEND_PORT%%NC%
echo.
echo %YELLOW%Pour arreter: %0 stop%NC%
echo %YELLOW%Pour voir le statut: %0 status%NC%
goto :eof
REM Commande STOP
:cmd_stop
echo %PURPLE%🛑 Arret de Visual Workflow Builder%NC%
call :stop_process "%FRONTEND_PID_FILE%" "Frontend"
call :stop_process "%BACKEND_PID_FILE%" "Backend"
echo %GREEN%✅ Application arretee%NC%
goto :eof
REM Commande STATUS
:cmd_status
echo %PURPLE%📊 Statut de Visual Workflow Builder%NC%
echo.
REM Statut du backend
call :is_running "%BACKEND_PID_FILE%"
if !errorlevel! equ 0 (
set /p backend_pid=<"%BACKEND_PID_FILE%"
echo %GREEN%✅ Backend: En cours (PID: !backend_pid!, Port: %BACKEND_PORT%)%NC%
) else (
echo %RED%❌ Backend: Arrete%NC%
)
REM Statut du frontend
call :is_running "%FRONTEND_PID_FILE%"
if !errorlevel! equ 0 (
set /p frontend_pid=<"%FRONTEND_PID_FILE%"
echo %GREEN%✅ Frontend: En cours (PID: !frontend_pid!, Port: %FRONTEND_PORT%)%NC%
) else (
echo %RED%❌ Frontend: Arrete%NC%
)
echo.
echo %CYAN%💻 Informations systeme:%NC%
echo OS: Windows
python --version 2>nul && echo Python: Installe || echo Python: Non installe
node --version 2>nul && echo Node.js: Installe || echo Node.js: Non installe
npm --version 2>nul && echo npm: Installe || echo npm: Non installe
goto :eof
REM Commande SETUP
:cmd_setup
echo %PURPLE%⚙️ Configuration initiale de Visual Workflow Builder%NC%
echo.
REM Vérifier les prérequis
echo %BLUE%Verification des prerequis...%NC%
python --version >nul 2>&1
if !errorlevel! neq 0 (
echo %RED%❌ Python n'est pas installe%NC%
exit /b 1
)
echo %GREEN%✅ Python: Installe%NC%
node --version >nul 2>&1
if !errorlevel! neq 0 (
echo %RED%❌ Node.js n'est pas installe%NC%
exit /b 1
)
echo %GREEN%✅ Node.js: Installe%NC%
npm --version >nul 2>&1
if !errorlevel! neq 0 (
echo %RED%❌ npm n'est pas installe%NC%
exit /b 1
)
echo %GREEN%✅ npm: Installe%NC%
REM Configuration du backend
echo %BLUE%Configuration du backend...%NC%
cd backend
if not exist "venv" (
python -m venv venv
)
call venv\Scripts\activate.bat
pip install -r requirements.txt
echo. > .deps_installed
cd ..
REM Configuration du frontend
echo %BLUE%Configuration du frontend...%NC%
cd frontend
npm install
cd ..
echo %GREEN%✅ Configuration terminee%NC%
echo.
echo %CYAN%Vous pouvez maintenant demarrer l'application avec:%NC%
echo %YELLOW%%0 start%NC%
goto :eof
REM Commande TEST
:cmd_test
echo %PURPLE%🧪 Tests de Visual Workflow Builder%NC%
echo.
REM Vérifier que l'application est démarrée
call :is_running "%BACKEND_PID_FILE%"
set "backend_running=!errorlevel!"
call :is_running "%FRONTEND_PID_FILE%"
set "frontend_running=!errorlevel!"
if !backend_running! neq 0 (
echo %YELLOW%Demarrage de l'application pour les tests...%NC%
call :cmd_start
timeout /t 5 /nobreak >nul
)
echo %BLUE%Test de l'import/export...%NC%
if exist "test_import_export.sh" (
bash test_import_export.sh
)
echo %GREEN%✅ Tests termines%NC%
goto :eof
REM Commande CLEAN
:cmd_clean
echo %PURPLE%🧹 Nettoyage des fichiers temporaires%NC%
call :cmd_stop
del backend.log 2>nul
del frontend.log 2>nul
del "%BACKEND_PID_FILE%" 2>nul
del "%FRONTEND_PID_FILE%" 2>nul
if exist "backend\__pycache__" (
rmdir /s /q "backend\__pycache__"
)
if exist "frontend\build" (
rmdir /s /q "frontend\build"
)
echo %GREEN%✅ Nettoyage termine%NC%
goto :eof
REM Point d'entrée principal
call :parse_args %*
REM Exécuter la commande
if "%COMMAND%"=="start" call :cmd_start
if "%COMMAND%"=="stop" call :cmd_stop
if "%COMMAND%"=="status" call :cmd_status
if "%COMMAND%"=="setup" call :cmd_setup
if "%COMMAND%"=="test" call :cmd_test
if "%COMMAND%"=="clean" call :cmd_clean
endlocal