Workflow Builder D&D

Drag & Drop workflow builder

🌐 Website : wbuilder

πŸ“‘Project Description

Created a Workflow Builder application where users can create, edit, and visualize different workflows. Each workflow consists of multiple steps (nodes) and the relationships (edges) between them. Users should be able to drag and drop different types of nodes (e.g., filter, find, reduce, map, array methods) onto a canvas, and then draw lines between them to represent the workflow. Workflow building that performs dynamic operations on large amounts of data. You will have multiple CSVs in your local project. User can perform various operations on data to see final result on the CSV user has selected. This CSV might contain million records too.

screen1
screen2
screen3
screen4

πŸš€ Tech Stack

  • HTML5
  • CSS3
  • Vite
  • React
  • Typescript
  • React Flow
  • React Hooks
  • React Redux
  • React Router
  • Tailwind CSS
  • Redux Toolkit
  • Tabler Icons
  • React Resizable Panels

πŸ”Key Features

  • [βœ”] The dashboard will display all the workflows user has created. Users can either create a new workflow or edit the existing one.
  • [βœ”] The user will be represented with a blank canvas.
  • [βœ”] In the left panel,
    • there will be options to choose CSV data to perform operations on. (These CSVs will reside in the local project folder).
    • These CSV data will be input of the next node.
    • there will be nodes which represents Array methods such as filter, map, find etc.
  • [βœ”] User will select any node and will drop in canvas and will take few required inputs such as,
    • in sort method, column name & order
    • in filter method,
      • column name,
      • condition (is equal, is not equal to, includes, does not include)
      • value (this will be dynamically shown based on condition type selection)
  • [βœ”] All these blocks connected via each other and output of this block passed to the next connected block and perform operation only on the previous node’s output data.
  • [βœ”] There is a Run button inside every block and upon clicking it, final output will be shown in table format in bottom panel (which is collapsible)
  • [βœ”] These data has option to β€œExport data” in json or in CSV format again.
  • [βœ”] There is a Save workflow button on header. By clicking it that workflow along with its unique name should be stored in web storage (localStorage)
  • [βœ”] The application should handle large data efficiently and demonstrate good performance.

βœ…Development Technology

  1. [βœ…] The application is built using React and related technology stack (Redux, React-Router, etc).
  2. [βœ…] The workflow builder uses React Flow and provides a seamless user experience.
  3. [βœ…] Components are well-structured and properly organized.
  4. [βœ…] State management is handled efficiently using Redux and context API.
  5. [βœ…] Use of Redux-toolkit for state management.
  6. [βœ…] React hooks are used where necessary.
  7. [βœ…] React best practices are followed.
  8. [βœ…] Proper error handling is implemented.
  9. [βœ…] Proper use of async operations and Promises.
  10. [βœ…] The code is clean, well-structured, and follows a recognized style guide (Airbnb's style guide).
  11. [βœ…] Code runs with eslint enabled.
  12. [βœ…] Error messages is proper along with fallback UI where there are no data.
  13. [βœ…] Runtime UI crashes are not allowed, even if it happens anyhow, It should have a fallback UI with a gradient background and error message texts upon it which should be clearly readable.

10 Apr 2024

Keywords
React.js
Typescript
JavaScript
Redux
Redux Toolkit
Resizable Planel
React flow
Vite

Creating portfolio made simple for

Trusted by 49900+ Generalists. Try it now, free to use

Start making more money