A comprehensive scientific laboratory workflow management platform designed for automated electrochemical and catalyst research. This system provides visual workflow design, device control, and experiment execution capabilities for Self-Driving Laboratory (SDL) environments.
- Drag-and-drop interface for creating laboratory workflows
- Node-based editor with ReactFlow for connecting operations
- Pre-built operation nodes for common lab equipment and procedures
- Custom Unit Operation (UO) builder for creating reusable components
- Conditional logic and branching for complex experimental flows
- SDL Catalyst operations for electrochemical experiments (CV, LSV, OCV, PEIS)
- Medusa platform controls (pumps, valves, hotplates, balances, sensors)
- OT2 robotic arm integration for liquid handling
- Generic device abstraction layer for extensibility
- Multi-language execution (Python for science, Rust for hardware control)
- Real-time monitoring via WebSocket connections
- Remote execution capability for distributed laboratory systems
- Simulation mode for testing workflows before execution
- Dynamic parameter configuration with validation
- Optimization suggestions and parameter linkage
- Environmental adjustment services
- File upload/download for experimental data
- React 18 with TypeScript
- ReactFlow for workflow visualization
- Material-UI (MUI) for UI components
- Vite for build tooling
- Python FastAPI for workflow execution API
- Rust for device executors and hardware control
- Node.js/Express for file management services
- PostgreSQL with Prisma ORM
- WebSocket for real-time communication
- Node.js 18+
- Python 3.8+
- Rust 1.70+
- PostgreSQL 14+
-
Clone the repository
git clone https://github.com/SissiFeng/workflow-management.git cd workflow-management
-
Install frontend dependencies
npm install
-
Install backend dependencies
cd backend pip install -r requirements.txt
-
Build Rust components
cd device_executor cargo build --release
-
Setup database
cd server npx prisma migrate dev
-
Start the frontend development server
npm run dev
-
Start the backend services
cd backend python main.py
-
Start the file server
cd server npm run dev
npm run build
workflow-management/
βββ src/ # Frontend React application
β βββ components/ # UI components
β β βββ OperationNodes/ # Workflow node components
β β βββ Canvas/ # Workflow canvas
β β βββ UOBuilder/ # Custom UO builder
β βββ services/ # Frontend services
β βββ types/ # TypeScript type definitions
βββ backend/ # Python backend services
β βββ api/ # FastAPI endpoints
β βββ executors/ # Workflow execution engines
β βββ sdl_catalyst/ # SDL Catalyst primitives
β βββ device_executor/ # Rust device controllers
βββ server/ # Node.js file server
βββ config/ # Configuration files
βββ documentation/ # Project documentation
βββ deployment/ # Deployment configurations
βββ tests/ # Test files
- SDL Catalyst Nodes: CV, LSV, OCV, PEIS for electrochemical measurements
- Medusa Control Nodes: Device-specific controls for laboratory equipment
- File Nodes: Data upload/download and file management
- Conditional Nodes: Logic and branching for complex workflows
- CVA (Cyclic Voltammetry Analyzer): Automated electrochemical measurements
- Pump Control: Precise fluid handling and dispensing
- Valve Control: Multi-port switching for fluid routing
- Balance Control: Automated weighing and material handling
- Sensor Monitoring: Real-time data acquisition
- Visual component library for creating custom operations
- Parameter type system (number, string, boolean, file, select)
- Drag-and-drop interface for UO construction
- Auto-registration in the workflow sidebar
The system provides RESTful APIs for:
- Workflow management and execution
- Device control and monitoring
- File upload/download operations
- Custom UO registration
API documentation is available at /api/docs
when running the backend server.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow TypeScript/ESLint conventions for frontend code
- Use Python type hints and follow PEP 8 for backend code
- Write tests for new features
- Update documentation for API changes
# Frontend tests
npm test
# Backend tests
cd backend
pytest
# Device executor tests
cd backend/device_executor
cargo test
The system supports deployment to:
- Vercel for frontend hosting
- Docker containers for backend services
- Cloud platforms (AWS, GCP, Azure) via Terraform configurations
See the deployment/
directory for specific deployment guides.
Comprehensive documentation is available in the documentation/
directory:
- API Guide: REST API usage and examples
- Node Development: Creating custom workflow nodes
- Device Integration: Adding new laboratory equipment
- Architecture Overview: System design and components
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or contributions:
- Create an issue on GitHub
- Check the documentation directory
- Review existing discussions and PRs
- Built for Self-Driving Laboratory (SDL) research environments
- Supports electrochemical and catalyst research workflows
- Designed for automated laboratory operations and data collection