Context
The Flow Interoperability Project(FLOIP) is an open-source project that aims to create a standard for the interoperability of flows across different platforms. The project is a collaboration between the Viamo Inc/ONA/InSTEDD/UNICEF/Turn/Weni.
The purpose of the project is to enable useful interoperability between Flow-based platforms, and to incentivize the joining of future software tools into an interoperable ecosystem. That required a standardization of the way flows are described and executed across different platforms.
Contributions
Many repos were involved in this project, but my main contributions were specifically on 02 repos:
- Flow Builder: A visual interface for creating and editing flows.
- Flow Runner: A runtime for executing flows, and a Typescript interfaces which define the flow structure.
Flow Runner
- Top 2 contributor, +17k lines of code added, 100 commits.
- Few of my main contributions were:
- introducing a script to generate the flow-runner json-schema from the typescript interfaces.
- writing ts interfaces for new flow blocks & flow containers.
- maintaining the generated json-schema versions (RC2, RC3, RC4).
Flow Builder
- Top 1 contributor, +8M lines of code added, 1.5k commits.
- Few of my main contributions were:
- leading the implementation / maintenance of the UI/UX.
- adding a time travel feature to handle undo/redo changes.
- writing the json-schema validator for the flow-builder.
- adding CI/CD with Travis-CI, and the Github Pages deployment.
Main tech stacks
- Flow Runner: Typescript, Node, Json Schema
- Flow Builder: Vuejs, Vuex/Pinia, Typescript, Json Schema Validator
External resources
- Github page link to quick live demo the flow-builder
- Flow specification