Flow-based assessments with Bitflow consits of a Flow. A Flow definies the logic of your assessment. A Flow is defined by nodes and edges. A edge just connects two nodes. A node can either be an interactive one or a control one. Interactive meaning requiring interaction by the user and control meaning working in the background without the user knowing that they are there. You can read more about Flows here.

You can use the Do component for executing a Flow and the Report components for showing the results.


At minimum you need to install @biflow/provider, one start bit e.g. @bitflow/start-simple, one end bit e.g. @bitflow/end-tries. Of course you also want to have some tasks bits e.g. @bitflow/task-choice. See Bits for more details on the different bits you can install.


A minimal example using the DoLocal would look like this:

import { PatchesProvider } from "@openpatch/patches";
import { BitflowProvider } from "@bitflow/provider";
import * as startSimple from "@bitflow/start-simple";
import * as endTries from "@bitflow/end-tries";
import * taskChoice from "@bitflow/task-choice";
import { DoLocal } from "@bitflow/do-local";

export default () => {
  return (
          end: {
            tries: endTries
          start: {
            simple: startSimple
          input: {},
          task: {
            choice: taskChoice
          title: {}
        <DoLocal flow={...} />

If you want to evaluate and store the answers on your server you need to do a little more by using the Do component.


You can find a minimal example in the example folder in the GitHub repository.

If you also want to show the Flow or want to use the Flow-Editor use have to install additional packages. For this visit the flow documentation.