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
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/add-resource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
name: Add a Resource
about: Submit a new social service organization for the resource directory
title: "Add resource: [Organization Name]"
labels: ["data"]
---

## Organization Details

**Name:**
**Phone:**
**Website:**
**Address:**
**Hours:**

## Classification

**Service domains** (from [standard vocabulary](../CONTRIBUTING.md#domain-vocabulary)):


**Coverage area** (e.g., statewide, stl_metro, kc_metro, specific counties):


**Target population** (from [standard vocabulary](../CONTRIBUTING.md#population-vocabulary)):


**Cost model** (free, sliding_scale, income_based, suggested_donation):


## Description

Brief description of services provided (1-2 sentences):


## Verification

- [ ] I have verified this organization is currently operating
- [ ] I have confirmed the phone number connects to the organization
- [ ] I have checked that this organization is not already in the directory

**How did you verify this information?**


**Your relationship to this organization (if any):**

31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/data-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Report Incorrect Data
about: Report outdated or incorrect resource information
title: "Data issue: [Organization Name]"
labels: ["data-quality"]
---

## Which resource?

**Organization name or ID:**


## What is wrong?

- [ ] Phone number changed
- [ ] Organization closed
- [ ] Address changed
- [ ] Hours changed
- [ ] Website changed
- [ ] Incorrect eligibility/coverage information
- [ ] Other

## Correct information

What should it say instead?


## How do you know?

How did you discover this information is incorrect? (e.g., called the number, visited the website, work there)

19 changes: 19 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Summary

<!-- 1-3 bullet points describing what this PR does -->

## Type of Change

- [ ] New resource(s) added to `mo-resources.json`
- [ ] Resource data correction
- [ ] Bug fix
- [ ] New feature
- [ ] Accessibility improvement
- [ ] Documentation update

## Checklist

- [ ] `node scripts/validate.js` passes
- [ ] `node tests/eligibility.test.js` passes
- [ ] New resources have been verified (phone/website confirmed)
- [ ] No PII included in any files
24 changes: 24 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Validate

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20

- name: Validate resource directory
run: node scripts/validate.js

- name: Run tests
run: node tests/eligibility.test.js
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
node_modules/
.env
.env.*
.DS_Store
*.log
dist/
build/
coverage/
.idea/
.vscode/
*.swp
*.swo
*~
96 changes: 96 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Contributing to Access to Services

Thank you for helping improve access to social services in Missouri. This guide covers how to contribute resources, report data issues, and submit code changes.

## Adding a Resource

Resource entries live in `mo-resources.json`. To add a new organization:

### Required Fields

| Field | Example | Notes |
|-------|---------|-------|
| `id` | `stl-food-outreach` | Unique. Use pattern: `region-shortname` |
| `name` | `Food Outreach` | Official organization name |
| `domain` | `["food"]` | From [standard vocabulary](#domain-vocabulary) |
| `type` | `food_bank` | Organization type |
| `coverage` | `stl_metro` | Geographic coverage area |
| `population` | `["all"]` | From [standard vocabulary](#population-vocabulary) |
| `description` | `"Provides nutritious food..."` | Brief, accurate description |
| `verified` | `2026-03-28` | Date you verified the information (YYYY-MM-DD) |

### Optional Fields

`phone`, `phone_alt`, `address`, `website`, `hours`, `counties`, `cost`, `insurance`, `note`

### Submission Checklist

Before submitting a new resource:

- [ ] Verified the organization is currently operating (called or checked website)
- [ ] Confirmed the phone number connects to the organization
- [ ] Checked for duplicate entries in `mo-resources.json`
- [ ] Used standard domain and population vocabulary
- [ ] Set `verified` to today's date
- [ ] Ran `node scripts/validate.js` and it passes

### How to Submit

1. Fork the repository
2. Add your entry to the `resources` array in `mo-resources.json`
3. Run `node scripts/validate.js` to validate
4. Open a pull request with the title: `Add resource: [Organization Name]`
5. Include in the PR description: how you verified the information and your relationship to the organization (if any)

## Reporting Incorrect Information

If you find outdated or incorrect resource data:

1. Open an issue with the title: `Data issue: [Organization Name]`
2. Include: what is wrong, what the correct information is, and how you know

Common issues: phone number changed, organization closed, hours changed, address moved.

## Code Changes

### Setup

```bash
git clone https://github.com/dougdevitre/access-to-services.git
cd access-to-services
```

### Before Submitting

1. Run validation: `node scripts/validate.js`
2. Run tests: `node tests/eligibility.test.js`
3. Test any JSX changes in a React environment

### Code Style

- Use descriptive variable names (not abbreviated)
- Include ARIA attributes for interactive elements
- Keep screening questions at a 5th-8th grade reading level
- Do not commit PII or real client data

## Domain Vocabulary

```
food, housing, mental_health, substance_use, healthcare, education,
employment, legal, children, family, public_safety, disability,
aging, transportation, crisis, financial, immigration, reentry
```

## Population Vocabulary

```
all, low_income, seniors, disabled, children, children_0_3,
children_under5, school_age, families_with_children, veterans,
pregnant, lgbtq_youth, justice_involved, homeless, immigrants,
caregivers, medicare, families_prenatal_5, families_children_disabilities,
all_rural
```

## Questions?

Open an issue or reach out to the maintainers.
Loading
Loading