/hitl-ab-bpm

Business Process Improvement with Reinforcement Learning and Human-in-the-Loop.

Primary LanguagePythonMIT LicenseMIT

HITL AB-BPM - Continuous, Rapid and Controllable Business Process Improvement

Auto Updating Bagde

HITL AB-BPM is a tool that allows for the structural A/B testing of business process models a business process management system with reinforcement learning techniques. As a machine might not have all information about the business process available to make the right choices, HITL AB-BPM allows human experts to be actively involved in the dynamic routing of instances to different process versions. Researchers can use the tool to explore new possibilities of joint human-machine decision-making for business process improvement and perspectively, practitioners can apply it to structure their process improvement.

Screenshot

Getting Started

Setup

Instructions on how to run the app locally can be found in source/README.md.

Usage

Learn more about how the app works in this demo video or in the tutorial document that can be found in this repository (./HITL-AB-BPM Tutorial.pdf).

Development

To understand the code base better and get started with development, you can refer to the documentation. For the backend, we have docstrings in the code and OpenAPI specs. More info on how to access the OpenAPI/SwaggerUI documentation can be found in source/backend/README.md. The frontend is also documented using docstrings. All the docstrings follow the Python conventions for docstrings, so you could generate HTML documentation using tools like pdoc if needed.

Structure

This repository contains the three main parts of the prototype: The backend, the frontend and the camunda engine with the camunda-bpm-simulator.

For more info on the parts of the app, please refer to the READMEs in the sub-folders (source/backend, source/frontend, api-tests...). We try to incorporate the READMEs at the spots where they are most relevant, in order to not add too much information here.

Contributing

Whenever you encounter a 🪲 bug or have 🎉 feature request, report this via Github issues.

Git Commit Messages

Commits should start with a Capital letter and should be written in present tense (e.g. 🎉 Add cool new feature instead of 🎉 Added cool new feature). You should also start your commit message with one applicable emoji. This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!

Emoji Description
🎉 :tada: When you added a cool new feature.
🔧 :wrench: When you refactored / improved some code / added tests.
:sparkles: When you improved style.
🎨 :art: When you improved / added assets like themes.
🚀 :rocket: When you improved performance.
📝 :memo: When you wrote documentation.
🪲 :beetle: When you fixed a bug.
🔀 :twisted_rightwards_arrows: When you merged a branch.
🔥 :fire: When you removed something.
🚚 :truck: When you moved / renamed something.