diff --git a/Data/WebUI/src/App.js b/Data/WebUI/src/App.js
index 255a7b8..0e60f10 100644
--- a/Data/WebUI/src/App.js
+++ b/Data/WebUI/src/App.js
@@ -1,17 +1,70 @@
-import logo from './logo.svg';
-import './App.css';
+import React from "react";
+import FlowEditor from "./components/FlowEditor";
+import { AppBar, Toolbar, Typography, Box, Menu, MenuItem, Button, CssBaseline, ThemeProvider, createTheme } from "@mui/material";
-function App() {
- return (
-
- );
+const darkTheme = createTheme({
+ palette: {
+ mode: "dark",
+ background: {
+ default: "#121212",
+ paper: "#1e1e1e"
+ },
+ text: {
+ primary: "#ffffff"
+ }
+ }
+});
+
+export default function App() {
+ const [anchorEl, setAnchorEl] = React.useState(null);
+
+ const handleMenuOpen = (event) => {
+ setAnchorEl(event.currentTarget);
+ };
+
+ const handleMenuClose = () => {
+ setAnchorEl(null);
+ };
+
+ return (
+
+
+
+ {/* Top Menu Bar */}
+
+
+
+ Borealis - Workflow Automation Tool
+
+
+
+
+
+
+ {/* Main Content - React Flow */}
+
+ {
+ document.getElementById("nodeCount").innerText = count;
+ }} />
+
+
+ {/* Status Bar */}
+
+ Nodes: 0 | Update Rate: 500ms | Flask API Server:
+ http://127.0.0.1:5000/data
+
+
+
+ );
}
-
-export default App;
diff --git a/Launch-Borealis.ps1 b/Launch-Borealis.ps1
index 22b4522..f264d3e 100644
--- a/Launch-Borealis.ps1
+++ b/Launch-Borealis.ps1
@@ -2,6 +2,10 @@
# Run this script with:
# Set-ExecutionPolicy Unrestricted -Scope Process; .\Start_Windows -WebServer.ps1
+Write-Output " =============================== "
+Write-Output " Deploying Borealis "
+Write-Output " =============================== "
+
# --- Check for Node.js ---
if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
Write-Error "Node.js is not installed. Please install Node.js and try again."
@@ -17,26 +21,26 @@ $webUIDestination = "$venvFolder\web-interface" # Destination f
# --- Create virtual environment if needed ---
if (!(Test-Path "$venvFolder\Scripts\Activate")) {
- Write-Output "Creating virtual environment in '$venvFolder'..."
+ Write-Output "Creating Virtual Python Environment in '$venvFolder'..."
python -m venv $venvFolder
}
# --- Copy Data folder (includes server.py) ---
if (Test-Path $dataSource) {
- Write-Output "Copying Data folder into virtual environment..."
+ Write-Output "Copying Borealis Server Data into Virtual Environment..."
if (Test-Path $dataDestination) {
Remove-Item -Recurse -Force $dataDestination
}
New-Item -Path $dataDestination -ItemType Directory -Force | Out-Null
Copy-Item -Path "$dataSource\*" -Destination $dataDestination -Recurse
} else {
- Write-Output "Warning: Data folder not found, skipping copy."
+ Write-Output "Warning: Data folder not found, skipping copy. Fix whatever you broke."
}
# --- React UI Deployment ---
# Check if the React UI folder exists in the virtual environment root.
if (-not (Test-Path $webUIDestination)) {
- Write-Output "React UI folder '$webUIDestination' not found. Generating default ReactJS app there..."
+ Write-Output "ReactJS App Not Found. Generating Default ReactJS App..."
npx create-react-app $webUIDestination
} else {
Write-Output "React UI folder '$webUIDestination' already exists."
@@ -44,19 +48,19 @@ if (-not (Test-Path $webUIDestination)) {
# If a custom UI folder exists at \Data\WebUI, copy its contents over (overwrite defaults).
if (Test-Path $customUIPath) {
- Write-Output "Custom UI folder found at '$customUIPath'. Overwriting default React app with Borealis-related files..."
+ Write-Output "Borealis ReactJS Data Found at '$customUIPath'. Overwriting ReactJS App Files..."
Copy-Item -Path "$customUIPath\*" -Destination $webUIDestination -Recurse -Force
} else {
Write-Output "No custom UI folder found at '$customUIPath'. Using default ReactJS app."
}
# --- Activate virtual environment ---
-Write-Output "Activating virtual environment..."
+Write-Output "Activating Virtual Python Environment..."
. "$venvFolder\Scripts\Activate"
# --- Install Python dependencies ---
if (Test-Path "requirements.txt") {
- Write-Output "Installing Python dependencies..."
+ Write-Output "Installing Python Dependencies..."
pip install -q -r requirements.txt
} else {
Write-Output "No requirements.txt found, skipping Python dependency installation."
@@ -69,12 +73,19 @@ if (-not (Test-Path $buildFolder)) {
if (Test-Path $packageJsonPath) {
Write-Output "React UI build not found in '$webUIDestination'. Installing dependencies and building the React app..."
Push-Location $webUIDestination
+ Write-Output " =============================== "
+ Write-Output " Installing NPM Packages "
+ Write-Output " =============================== "
npm install --no-fund --audit=false
# Ensure react-flow-renderer is installed
Write-Output "Installing React Flow..."
npm install reactflow --no-fund --audit=false
+ # Install Material UI Library
+ Write-Output "Installing Material UI Library..."
+ npm install @mui/material @emotion/react @emotion/styled --no-fund --audit=false
+
npm run build
Pop-Location
}
@@ -92,6 +103,9 @@ $expectedBuildPath = Join-Path (Get-Location) "web-interface\build"
Write-Output "Looking for build folder at: $expectedBuildPath"
# --- Start the Flask server (server.py is inside Borealis folder) ---
+Write-Output " =============================== "
+Write-Output " Launching Borealis "
+Write-Output " =============================== "
Write-Output "Starting the Flask server..."
python "Borealis\server.py"
diff --git a/Rebuild_ReactJS_App.ps1 b/Rebuild_ReactJS_App.ps1
new file mode 100644
index 0000000..37064f7
--- /dev/null
+++ b/Rebuild_ReactJS_App.ps1
@@ -0,0 +1,78 @@
+# Start_Windows - WebServer.ps1
+# Run this script with:
+# Set-ExecutionPolicy Unrestricted -Scope Process; .\Start_Windows -WebServer.ps1
+
+Write-Output " =============================== "
+Write-Output " Re-Building ReactJS App "
+Write-Output " =============================== "
+
+# --- Define paths ---
+$venvFolder = "Borealis-Workflow-Automation-Tool" # Virtual environment root.
+$dataSource = "Data" # Contains server.py and optionally WebUI.
+$dataDestination = "$venvFolder\Borealis" # Data folder copy destination in the venv.
+$customUIPath = "$dataSource\WebUI" # Custom UI folder source in the project root.
+$webUIDestination = "$venvFolder\web-interface" # Destination for the React UI in the venv.
+
+# If a custom UI folder exists at \Data\WebUI, copy its contents over (overwrite defaults).
+if (Test-Path $customUIPath) {
+ Write-Output "Borealis ReactJS Data Found at '$customUIPath'. Overwriting ReactJS App Files..."
+ Copy-Item -Path "$customUIPath\*" -Destination $webUIDestination -Recurse -Force
+} else {
+ Write-Output "No custom UI folder found at '$customUIPath'. Using default ReactJS app."
+}
+
+# --- Activate virtual environment ---
+Write-Output "Activating Virtual Python Environment..."
+. "$venvFolder\Scripts\Activate"
+
+# --- Remove Existing / Previous ReactJS App Build folder ---
+if (Test-Path $dataDestination) {
+ Remove-Item -Recurse -Force $venvFolder\web-interface\build
+}
+
+# --- Build the React (UI) app in the web-interface folder if needed ---
+$packageJsonPath = Join-Path $webUIDestination "package.json"
+$buildFolder = Join-Path $webUIDestination "build"
+if (-not (Test-Path $buildFolder)) {
+ if (Test-Path $packageJsonPath) {
+ Write-Output "React UI build not found in '$webUIDestination'. Installing dependencies and building the React app..."
+ Push-Location $webUIDestination
+ Write-Output " =============================== "
+ Write-Output " Installing NPM Packages "
+ Write-Output " =============================== "
+ npm install --no-fund --audit=false
+
+ # Ensure react-flow-renderer is installed
+ Write-Output "Installing React Flow..."
+ npm install reactflow --no-fund --audit=false
+
+ # Install Material UI Library
+ Write-Output "Installing Material UI Library..."
+ npm install @mui/material @emotion/react @emotion/styled --no-fund --audit=false
+
+ npm run build
+ Pop-Location
+ }
+ else {
+ Write-Output "No package.json found in '$webUIDestination'; skipping npm install/build."
+ }
+} else {
+ Write-Output "React UI build found. Skipping npm install/build."
+}
+
+# --- Change directory to the virtual environment root ---
+Push-Location $venvFolder
+Write-Output "Current working directory: $(Get-Location)"
+$expectedBuildPath = Join-Path (Get-Location) "web-interface\build"
+Write-Output "Looking for build folder at: $expectedBuildPath"
+
+# --- Start the Flask server (server.py is inside Borealis folder) ---
+Write-Output " =============================== "
+Write-Output " Launching Borealis "
+Write-Output " =============================== "
+Write-Output "Starting the Flask server..."
+python "Borealis\server.py"
+
+# --- Return to original directory and deactivate virtual environment ---
+Pop-Location
+deactivate