Skip to content

CodeForPhilly/benefit-decision-toolkit

Repository files navigation

BDT logo, consists of three blue chevrons containing the letters BDT

Use DMN and FEEL to create APIs and Screeners for public benefit rules.

Motivation

Why hire a team of software engineers to codify rules that your benefit experts already know inside and out?

Why design a screening tool from scratch when your goal is simply to deploy a functionally accurate service as quickly as possible?

Benefit Decision Toolkit simplifies the management of eligibility rules and screeners so motivated subject matter experts can create useful tools with less hand-holding from traditional software teams.

Links

Try out an example elegibility screener that was built with BDT, and directly interact with the API of the screener

If you are interested in getting involved with the project, check out our page on the Code For Philly website

User-Facing Technologies

Decision Model and Notation (DMN) is used to define the logic of the screener forms.

Form JS is used to define the user interface of the screener forms.

Developer-Facing Technologies

Quarkus is used to serve APIs.

Solid JS is used to build the frontend of the web app.

Navigating the Codebase

builder-api and builder-frontend comprise the web app used to build eligibility screeners.

screener-api and screener-frontend comprise the screener experience that the builder app deploys.

library-api contains a library of pre-built benefits and eligibility rules, suitable for including in custom screeners and for standing up a standalone eligibility API.

Local Development Setup

Clone this repository:

git clone https://github.com/CodeForPhilly/benefit-decision-toolkit.git

Go to the project's root directory:

cd benefit-decision-toolkit

To setup using the pre-defined Devbox configuration: *Note that this installs Devbox and Nix (if they aren't already installed).

bin/install-devbox && devbox run setup

If you don't want to use devbox/nix, then you can install system dependencies (e.g. JDK, Node, Maven) manually (see devbox.json for the list) and run:

bin/setup

If using devbox, then run the shell to load dependencies:

devbox shell
# Consider using direnv and/or the VS Code extensions (Devbox and Direnv) to automate this step.

Then start apps as needed, e.g.:

cd builder-frontend && npm run dev

You can find additional instructions to work on each app within the project in their respective directories, which are linked above.

Note that for the frontend apps, you will need a .env file from a teammate. Please do not commit this file to the repo.

About

Use DMN and FEEL to create APIs and Screeners for public benefit eligibility.

Topics

Resources

Stars

Watchers

Forks

Contributors 5