Hello everyone!
We are a team of 3 Information Systems bachelor students participating in the Informaticup 2025. The Informaticup is an annual competition organized by the GI. This year’s task is to contribute to OSS. Specifically, this includes making a concrete code contribution and opening a pull request. Community interaction in the form of feedback and discussion of the proposed solution is also part of the task.
While looking for projects to contribute to, we found bpmn-js, which seemed like a promising and fun project to contribute to. While looking for a problem to work on, we found it difficult to estimate the amount of work involved, especially for us since we are not familiar with the project and its architecture.
From the amount of credits we get from our university for participating, we can roughly estimate that a workload of about 50 hours per person (excluding other things, so just the time for coding and contributing) would be appropriate. Some of us are “fluent” in js, while others only have experience in other languages.
Is there an interesting topic or issue that is currently open that roughly fits the description and could be tackled by us?
Dear Fabian,
I have a suggestion that should be feasible considering the amount of work you can dedicate and the experience level.
Token simulation is a project allowing to visualise how tokens flow through a process diagram. So far the token simulation provides a user interface to manually halt & proceed tokens and to switch among the sequence flows going out of a gateway.
The token simulation module also provides an API for automatic playback. See here for more details:
It would be a great contribution to build upon this API, to facilitate the automatic playback of a user-provided event log (e.g. as a JSON-file) to visualise process execution for particular scenarios.
With such a project you don’t need to deep-dive into bpmn-js itself, so the complexity would be limited to understanding the token simulation module.
@rajgoel Did you already open an issue in token simulation for your case? From what I understood in the past, you’d like to be able to replay certain scenarios, but I still don’t know for what purpose (and hence if token simulation would be a good fit).
@fabian1 Thanks for reaching out. What would be the timeline, i.e. until when do you need suggestions from our end? Given ±50 hours of contribution we’d need to be a little bit more thoughtful what to contribute (so it actually ends up in the code base, for your benefit, and the benefit of our users).
@nikku The submission deadline for the competition is june 15th. Considering that the work is not done for us when we are done with coding and considering our semester schedules, we would like to start as soon as possible. But we do not want to rush you and know that finding such a task is not easy (and you might even have other stuff to do that thinking of a task for us ). I think that the end of march could server as a good “deadline” for finding a task, that leaves all of us with a reasonable amount of time to work.
@fabian1 Here is a list of potential contributions (that are a little bigger):
- Subprocesses should have start event · Issue #24 · bpmn-io/bpmn-js-create-append-anything · GitHub (quicker one)
- Support compensation without `activityRef` · Issue #191 · bpmn-io/bpmn-js-token-simulation · GitHub (harder one)
- Improved scripting support for token simulation (Contributing as part of the Informaticup 2025 - #2 by rajgoel), needs issue in token simulation @rajgoel
Add support for call activity referencing · Issue #107 · bpmn-io/vs-code-bpmn-io · GitHub, Spike: Call Activity - Jump to called element · Issue #63 · bpmn-io/vs-code-bpmn-io · GitHub (good one, diving into VS-code extensibility
Add Properties Panel · Issue #20 · bpmn-io/vs-code-bpmn-io · GitHub (foundations)
- Add ability to disable rule for a particular BPMN file or element · Issue #116 · bpmn-io/bpmnlint · GitHub very interesting one (how to persist this “ignore rule state” in the BPMN diagram, similar to an
eslint-ignore-next-line
annotation (javascript - Turning off eslint rule for a specific line - Stack Overflow) - Add option to generate subprocess diagrams · Issue #44 · bpmn-io/bpmn-to-image · GitHub
Add code editor to properties panel entries other than FEEL · Issue #4683 · camunda/camunda-modeler · GitHub - Be able to hook arbitrary code editors into our properties panel infrastructure, i.e. a GraphQL editor, a HTML editor, or a JavaScript editor. Requires deeper design to ensure this is pluggable)
Implement “cut” along with “copy” in the diagram core - Implement 'cut' in the edit menu and typical keyboard shortcuts. · Issue #1696 · camunda/camunda-modeler · GitHub
- Add keyboard shortcuts to context menu · Issue #768 · bpmn-io/bpmn-js · GitHub (Good one, but likely too big)
- Enable reordering of Lanes · Issue #969 · bpmn-io/bpmn-js · GitHub
Copy and paste between different browser windows · Issue #1709 · bpmn-io/bpmn-js · GitHub (based on Implement cross browser copy + paste by nikku · Pull Request #3 · nikku/bpmn-js-copy-paste-example · GitHub as inspiration)
- When moving a participant/pool move contained `bpmn:Group` with it · Issue #1929 · bpmn-io/bpmn-js · GitHub (good one!)
- Allow to bulk change type of multiple elements · Issue #2046 · bpmn-io/bpmn-js · GitHub (good one!)
- Select target instead of connection when connecting · Issue #2142 · bpmn-io/bpmn-js · GitHub (good, simple one)
Turn this demo into an example that features free floating comments · Issue #10 · bpmn-io/bpmn-js-embedded-comments · GitHub (good one)
- Additional node distribution features · Issue #1057 · camunda/camunda-modeler · GitHub
- Auto Morph None Events when connecting Message Flows · Issue #914 · camunda/camunda-modeler · GitHub
- When selecting a Sequence flow of the Label for the Sequence Flow, highlight the label/sequence · Issue #369 · camunda/camunda-modeler · GitHub
Each contribution would include that you work with the team to come up with a proper story how to improve things, and follow-up with the actual improvement. All linked issues I deem valuable for our users, we simply were not able to ship them due to priorities.
I added my favorites with a . These I’d work on, if I had your opportunity.