Use DMN and FEEL to create APIs and Screeners for public benefit rules.
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?
DMN Benefit Toolbox 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.
As a proof of concept, we've built an API and a screener for several of the tax relief benefits available in Philadelphia.
You can interact with the screener yourself at: https://phillypropertytaxrelief.org.
The easiest way to get a feel for DMN Benefit Toolbox is to open it in Project IDX:
Project IDX is a web-based development environment created by Google. When you open DMN Benefit Toolbox in IDX, a development machine will be created and configured for you in the cloud. (This will take a few minutes).
The second easiest way to get started is to use the included Devbox configuration:
Of course, you can also manually setup a laptop/desktop to work on DMN Benefit Toolbox, but it isn't recommended unless you really know what you're doing.
If you're planning to develop forms (the basis of eligibility screeners) in addition to eligibility rules, then you'll also need to download Camunda Modeler.
We use a combination of open-source tools (Kogito and form-js) with some scaffolding to tie them together and make them easier to use.
Here are some high-level things to orient you...
DMN files (.dmn
) can be edited directly in VS Code via the DMN Editor extension. If you're using Project IDX as described above, then this extension is already installed for you. If you're using another dev environment, then you'll need to install the extension manually.
You may occasionally need to interact with the raw XML text of the DMN; this can be done via the "Reopen with Text Editor" feature of VS Code.
A good orientation on the basics of DMN can be found here.
In this project, DMN (and its accompanying expression language FEEL) acts as the "source code" for a JSON web API. Kogito generates this API (with Java) when you run the Quarkus development server (automatic with Project IDX, or by running the bin/dev
script).
Form files (.form
) can be edited using Camunda Modeler. The modeler provides a UI for designing the form's layout and logic (which often incorporates FEEL expressions).
Behind the scenes,the form is saved in JSON format.
When it comes time to use the form in a screener, form-js interprets this JSON and uses it to display the form on a web page.
To create the Philadelphia Property Tax Relief Screener, we've written a Qte which displays the form, posts data as it is collected to the eligibility API (the one that is built from the DMN), and receives back eligibility results for display on the form.
For future screeners, we envision packaging up this functionality somehow, allowing the entire screening and results process to be included as part of other websites and tools, the content of which is outside the scope of this project.
See the LICENSE file for license rights and limitations (MIT).