Skip to content

Instantly share code, notes, and snippets.

@iRohitSingh
Created September 10, 2022 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iRohitSingh/b7a1e41a1f622b7995087ed2909285e4 to your computer and use it in GitHub Desktop.
Save iRohitSingh/b7a1e41a1f622b7995087ed2909285e4 to your computer and use it in GitHub Desktop.
Workflow Manager

Final Report

Student: Rohit Kumar

Mentor: Rob Gietema

Project: Workflow Manager

Organization: Plone Foundation

Description: This project is about implementing a editor for the workflow management in Volto(New Frontend for the Plone). In this editor you can create a workflow manager using drag,drop of diagram. Once you create a workflow diagram we will automatically create the workflow in Plone and you are able to assign it to the Content type. Now you can make the workflow management right in browser. You can edit, add, delete and modify all things in the browser using Volto User Interface.

What work was done

In this project majority of time I have to work on the client side becasue that's where I have to implement a editor where you can draw the diagram and using that diagram I have to create the workflow manager. But Instead of that I also have to write the specification for Plone restapi to support all the feature of the workflow diagram. Here is the bullet points of the work which was done throughout the Gsoc period.

  • Added Restapi specification for the workflow manager.
    • Adding of Workflow
    • Addition of state
    • Creating the transition between those state.
    • Get request specification for workflow, state and transition.
    • Post request specification for workflow, state and transition.
    • Patch request specification for workflow, state and transition.
    • Delete request specification for workflow, state and transition.

After finishing with the specification I moved to the frontend implementation of the workflow manager editor. After lot's of research we finalisied the react-diagraph library for implementing the editor.

  • Added the react-diagraph library in Volto codebase

  • Methods I have implemented for the editor in Volto codebase

    • onCreateNode ( For creating node in Volto )
    • onSelectNode ( we open sidebar to edit the Node definition )
    • onUpdateNode ( For updating the previously added node )
    • onSelectEdge ( We open sidebar to edit the edge definition )
    • onCreateEdge ( For creating edge in Volto )
    • getNodeIndex ( For finding out specific node )
    • getEdgeIndex ( For finding out specific edge )
    • onChangeNode ( For changing the node )
    • onChangeEdge ( For Changing the edge from one node to another )
  • GraphConfig for the editor.

    • Node type
    • Edge type
  • Sidebar for Node and Edge type

  • Schema For Edge

  • Schema For Node

And at the last View of Workflow.

Unmerged Pull Requests

What's left to do

  • Backward arrow to the node
  • Submit method for sending the data to Plone backend
  • Backend implementation of processing of Frontend data to create workflow manager.

I think that this feature is ready the only things is left is Backward arrow implementation. Once it is done it is ready to use.

Acknowledgement

I gratefully acknowledge the guidance of my mentor Rob Gietema for always helping me throughout this Gsoc period. I have gained a lot as it is my first time working with professional developers, open-source community and an established software program. The experiences and challenges I have been given in the project are profound for my growth and future development.

Thanks ❤️

@SaiRev0
Copy link

SaiRev0 commented Mar 11, 2023

Can you please share your GSOC Proposal? It will be of great help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment