Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@

**Use [DMN](https://www.omg.org/dmn/) and [FEEL](https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/) to create APIs and Screeners for public benefit rules.**

## Motivation
## 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.***
**_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 eligibility screener](https://phillypropertytaxrelief.org/) that was built with BDT, and directly interact with the [API of the screener](https://phillypropertytaxrelief.org/q/swagger-ui/)
Try out an [example eligibility screener](https://phillypropertytaxrelief.org/) that was built with BDT, and directly interact with the [API of the screener](https://phillypropertytaxrelief.org/q/swagger-ui/). Read the [screener builder docs](https://bdt-docs.web.app/).

If you are interested in getting involved with the project, check out [our page on the Code For Philly website](https://codeforphilly.org/projects/dmn_benefit_toolbox-including_the_philly_property_tax_relief_screener)

Expand Down Expand Up @@ -69,13 +69,14 @@ cd benefit-decision-toolkit
```

From here, you have 3 options:

- Use [Devbox](https://www.jetify.com/docs/devbox/) (recommended),
- Use [Devcontainer in VS Code](https://code.visualstudio.com/docs/devcontainers/containers), or
- DIY (not recommended)

#### Option 1: Devbox (recommended)

We use [Jetify Devbox](https://www.jetify.com/docs/devbox/) to declare and manage project development dependencies. This makes it easy to setup the project and reduces *"works on my machine"* issues. It uses the Nix Package Manager under the hood, which results in higher performance compared to container-based solutions.
We use [Jetify Devbox](https://www.jetify.com/docs/devbox/) to declare and manage project development dependencies. This makes it easy to setup the project and reduces _"works on my machine"_ issues. It uses the Nix Package Manager under the hood, which results in higher performance compared to container-based solutions.

To install devbox (and Nix) and configure your machine for development:

Expand Down Expand Up @@ -110,6 +111,7 @@ devbox run -- firebase emulators:export ./dir
```

Tips:

- Use the [Devbox direnv integration](https://www.jetify.com/docs/devbox/ide-configuration/direnv) to automatically start a Devbox shell whenever you navigate to the project directory.
- If you develop in VS Code, then consider installing the [Devbox and Direnv extensions](https://www.jetify.com/docs/devbox/ide-configuration/vscode) to automatically start `devbox shell` in VS Code Terminal and otherwise manage Devbox via the Command Palette.
- Edit the `.devboxrc` file (not in source control) to run custom commands every time you start a devbox environment. You can use this for things like disabling conflicting tools or adding project-specific shell aliases.
Expand All @@ -120,7 +122,7 @@ This project comes with a devcontainer configuration that runs the Devbox/Nix en

To use the provided devcontainer, first open VS Code and install the `Dev Containers` extension.

Then, use the command palette (Cmd+Shift+P or Ctrl+Shift+P) to run *"Dev Containers: Open Folder in Container..."* and select this project. It will take several minutes to build the container the first time.
Then, use the command palette (Cmd+Shift+P or Ctrl+Shift+P) to run _"Dev Containers: Open Folder in Container..."_ and select this project. It will take several minutes to build the container the first time.

You should be prompted to install Docker if it isn't already installed.

Expand Down
10 changes: 8 additions & 2 deletions website/src/assets/text/projects/ScreenerBuilder.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
---
index: 1
link: https://github.com/CodeForPhilly/benefit-decision-toolkit
btnText: View Code
links:
[
{
url: https://github.com/CodeForPhilly/benefit-decision-toolkit,
text: View Code,
},
{ url: https://bdt-docs.web.app/, text: Read Docs },
]
screenshot: ../../screenshots/web-app.png
screenshotAlt: Screenshot of a benefits management interface with a button labeled create new benefit and two existing benefits named food assistance and heating assistance.
---
Expand Down
3 changes: 1 addition & 2 deletions website/src/assets/text/projects/TaxScreener.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
index: 2
link: https://phillypropertytaxrelief.org/
btnText: Try It Out
links: [{ url: https://phillypropertytaxrelief.org/, text: Try It Out }]
screenshot: ../../screenshots/property-tax.png
screenshotAlt: Philadelphia property tax relief screener text overlaid on a background of Philadelphia’s skyline with trees in the foreground.
---
Expand Down
14 changes: 9 additions & 5 deletions website/src/components/Projects.astro
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,15 @@ import { Image } from "astro:assets";
height={650}
class="rounded-lg border border-gray-400"
/>
<div class="w-fit mx-auto">
<a href={project.data.link} target="_blank">
<ActionButton>{project.data.btnText}</ActionButton>
</a>
</div>
<ul class="w-fit mx-auto flex flex-row gap-4 md:gap-6">
{project.data.links.map((link) => (
<li>
<a href={link.url} target="_blank">
<ActionButton>{link.text}</ActionButton>
</a>
</li>
))}
</ul>
</div>
</li>
);
Expand Down
8 changes: 6 additions & 2 deletions website/src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ const projects = defineCollection({
schema: ({ image }) =>
z.object({
index: z.number(),
link: z.string(),
btnText: z.string(),
links: z.array(
z.object({
url: z.string(),
text: z.string(),
}),
),
screenshot: image(),
screenshotAlt: z.string(),
}),
Expand Down
Loading