Automated data pipeline for the Central Cities Navigation Center (CCNC) Performance Dashboard, a public-facing transparency dashboard embedded on the SquareSpace website of CCNC.
This repository uses GitHub Actions to fetch live performance data from Monday.com once daily and publish it as a static JSON file via GitHub Pages. The JSON is consumed by a Squarespace code block that renders it as interactive charts — with no API token ever exposed to the browser.
Monday.com API → GitHub Actions (daily) → data.json → GitHub Pages → Squarespace dashboard
- A scheduled GitHub Action runs every day at 8am UTC
- It calls the Monday.com GraphQL API (
https://api.monday.com/v2) using a scopedboards:readOAuth token stored as a GitHub secret - It fetches data from 10 specific CCNC boards
- The resulting
data.jsonis deployed to GitHub Pages - The Squarespace embed fetches from
https://ggcity.github.io/ccnc-dashboard-data/data.json
Platform: Monday.com (City of Garden Grove account)
API: Monday.com GraphQL API v2
Scope: boards:read — read only, no write access
| Board | Description |
|---|---|
| Current Client Count Data | Live bed count per city |
| Client Breakdown | Males, females, pets — current and total |
| Client Referrals to Services | Medical, income, housing, recovery referrals |
| Client Income | Sources of income distribution |
| Client Housing Search Status | Housing navigation pipeline |
| Housing Exits | Housed, family reunification, 90-day rehab |
| Client Age | Age distribution of current residents |
| Senior Data | Senior (55+) counts by quarter |
| Veteran Data | Veteran counts by quarter |
| Intake & Exit Data | Cumulative intakes and exits by city |
| File | Description |
|---|---|
fetch-data.js |
Node.js script that calls the Monday.com API and writes data.json |
.github/workflows/update-data.yml |
GitHub Actions workflow — runs daily and on manual trigger |
squarespace-code-block-dashboard.html |
The dashboard embed — paste contents into a Squarespace Code Block |
squarespace-code-block-pit-count.html |
The pit count embed — paste contents into a Squarespace Code Block |
squarespace-code-block-success-stories.html |
The success stories embed — paste contents into a Squarespace Code Block |
- The Monday.com API token is stored exclusively in GitHub Actions Secrets (
MONDAY_TOKEN) and is never exposed to the browser - The token is scoped to
boards:readonly — it cannot write, modify, or delete any data - The published
data.jsoncontains only the data already displayed publicly on the dashboard
To force a data refresh outside the daily schedule:
- Go to the Actions tab
- Click Update CCNC Dashboard Data
- Click Run workflow
Nikita Smelkov — City of Garden Grove nikitas@ggcity.org
- Garden Grove
- Westminster
- Fountain Valley
Developed in partnership with the City of Westminster, City of Fountain Valley, and the County of Orange as part of the Central Cities Navigation Center initiative.