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.
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.
- 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.
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 ❤️
Can you please share your GSOC Proposal? It will be of great help