Visual Pipeline Engine is a full-stack application that lets users build, save, load, validate, and execute directed pipelines using a drag-and-drop node editor. The frontend is a React-based visual canvas powered by React Flow. The backend is a Spring Boot service with DAG validation, pipeline persistence using H2 in-memory database, and a simulated execution engine for pipeline nodes
- Drag-and-drop pipeline building interface
- Save/load pipeline persistence with Spring Data JPA + H2
- Backend DAG validation and topological execution order
- Pipeline execution engine that simulates text and LLM node behavior
- Toolbar actions for Save, Load, and Execute
- Frontend tests for toolbar rendering
- Backend integration test for
/pipelines/execute
- React 18 + React Flow
- Zustand for state management
- Custom node components: Input, Output, Text, LLM, Timer, Condition, API, Database, Webhook
- Toolbar with buttons for saving, loading, and executing pipelines
- Spring Boot 3.2.4
- Java 17
- Spring Data JPA + H2 database
- REST endpoints for pipeline parsing, saving, loading, and executing
- Execution engine walks nodes in topological order and generates a step-by-step log
customInput— Input data sourcecustomOutput— Output sinktext— Static / dynamic text processingllm— Simulated OpenAI-style response nodetimer— Delay / scheduled triggercondition— Branching / decision nodeapi— External API request stubdatabase— Database action stubwebhook— Webhook trigger stub
Validates the pipeline JSON and returns DAG metadata.
- Request form data:
pipeline=<json> - Response includes:
is_dagexecution_ordernum_nodesnum_edges
Saves a pipeline to the H2 database.
- Request form data:
pipeline=<json> - Response includes saved
id
Returns all saved pipelines from the database.
Loads a saved pipeline by ID.
- Response includes
nodesandedges
Validates and executes a pipeline.
- Request form data:
pipeline=<json> - Response includes
statusandlogs
cd Frontend
npm install
npm startOpen http://localhost:3000 in your browser.
cd Backend-Java
.\mvnw.cmd spring-boot:runThe server listens on http://localhost:8080.
Run the Spring Boot tests:
cd Backend-Java
.\mvnw.cmd testA dedicated integration test covers /pipelines/execute.
Run the React test suite:
cd Frontend
npm test -- --watchAll=falseA toolbar rendering test verifies Save / Load / Execute button presence.
- The backend uses an H2 in-memory database by default, which resets when the server stops.
- The current load action fetches pipeline ID
1for demo purposes. This can be extended to support an ID selector or pipeline list. - The execution engine currently simulates runtime behavior rather than connecting to an actual external LLM or API.