ποΈ A community-driven, hopefully one-day comprehensive collection of JSON data about youth initiatives, community resources, and recreational opportunities in the Seattle area.
Seattle Open JSON provides structured, machine-readable information about youth initiatives, community resources, and recreational opportunities in the Seattle area. This package includes both raw data and TypeScript interfaces for type-safe development. If you fork this repository, you will notice a 'react-playground' directory; by running npm install
and npm run dev
, you can open visual playground to help explore the data we have collected thus far. It is incomplete, and not adequately cleaned up yet, but it is a starting point. I hope that the City of Seattle can take some inspiration towards forking this, or simply looking at it, and putting together their own npm module to enable developers to build on top of their data. In particular, creating a tree view of the structure of government, and it's available resources and programs, would allow developers to adequately present those resources to make them more discoverable to the general public.
npm install seattle-open-json
This package contains 11 datasets with detailed information about Seattle's community resources, originally taken from the city of Seattle, the Emerald City Resource Guide, and some scraped data from City of Seattle websites.:
Dataset | Records | Description |
---|---|---|
Community Centers | 27+ | Seattle Parks & Recreation community centers with schedules, amenities, and contact info |
Farmers Markets | 20+ | Local farmers markets with locations, schedules, and vendor information |
Parks Catalog | 400+ | Complete catalog of Seattle parks with facilities and amenities |
Mobile Recreation | 150+ | Mobile recreation programming across Seattle neighborhoods |
P-Patch Gardens | 90+ | Community gardens with plot information and contact details |
Picnic Sites | 200+ | Reservable picnic areas with capacity and amenities |
Public Spaces | 40+ | Privately-owned public spaces available for community use |
Youth Programs | 1000+ | Comprehensive youth programs, activities, and opportunities |
Emerald City Guide | 1400+ | Community resources and services directory |
HSDS Example | 1 | Human Services Data Specification compliant organization data |
import seattleData from "seattle-open-json";
// Access all data
console.log(seattleData.data);
// Access specific collections
console.log(seattleData.data.communityCenters);
console.log(seattleData.data.youthPrograms);
// Access metadata
console.log(seattleData.metadata);
import {
communityCenters,
farmersMarkets,
youthPrograms,
packageMetadata,
} from "seattle-open-json";
// Use individual collections
const activeCenters = communityCenters.filter(
(center) => center["Open Status"] === "Open"
);
const weekendMarkets = farmersMarkets.filter(
(market) =>
market.ACTIVEDAY.includes("Saturday") || market.ACTIVEDAY.includes("Sunday")
);
import { recreationOpportunities, communityResources } from "seattle-open-json";
// Recreation-focused data (community centers, parks, mobile programming)
const recreationData = recreationOpportunities;
// Community resources (farmers markets, P-patches, youth programs, etc.)
const communityData = communityResources;
// Youth Programs
interface YouthProgram {
id: string;
organizationName: string;
programDescription: string;
activityName: string;
activityDescription: string;
location: string;
ageRange: string;
dates: string;
day: string;
times: string;
cost: string;
url: string;
lastUpdated: string;
}
// Community Centers
interface CommunityCenter {
OBJECTID: number;
name: string;
Address: string;
"Short Name": string;
"CC Phone Number": string;
"Open Status": string;
"Scheduling Season": string;
// ... additional schedule and amenity fields
}
// Farmers Markets
interface FarmersMarket {
OBJECTID: number;
NAME: string;
LOCATION: string;
ORGANIZATI: string;
ACTIVEDAY: string;
MONTHS: string;
HOURS: string;
WEBSITE: string;
PHONE: string;
x: number;
y: number;
}
// Community Resources
interface EmeraldCityResourceGuide {
name: string;
website?: string;
phone?: string;
address?: string;
hours?: string;
description: string;
categories: string[];
}
For organizations following the HSDS standard:
import {
Organization,
Service,
Location,
Contact,
Program,
Schedule
} from "seattle-open-json";
// Fully compliant HSDS organization structure
const organization: Organization = {
id: string;
name: string;
description: string;
email?: string;
website?: string;
// ... additional HSDS fields
};
import {
seattleYouthHSDSExample,
programs,
services,
locations,
contacts,
} from "seattle-open-json";
// Access complete HSDS dataset
console.log(seattleYouthHSDSExample.organization);
console.log(seattleYouthHSDSExample.services);
// Access individual HSDS collections
const youthPrograms = programs.filter((program) =>
program.name.toLowerCase().includes("youth")
);
const contactInfo = contacts.find(
(contact) => contact.name === "Program Director"
);
// Find services by location
const seattleServices = services.filter((service) =>
locations.some(
(location) => location.id === service.id && location.city === "Seattle"
)
);
import { youth_programs } from "seattle-open-json";
const teenPrograms = youth_programs.filter(
(program) =>
program.ageRange.includes("13") ||
program.ageRange.includes("teen") ||
program.ageRange.includes("14-18")
);
import { communityCenters } from "seattle-open-json";
const openCenters = communityCenters.filter(
(center) => center["Open Status"] === "Open"
);
const centersWithGyms = communityCenters.filter(
(center) => center["Gym"] === "Yes"
);
import { farmersMarkets, mobileRecreationProgramming } from "seattle-open-json";
const weekendMarkets = farmersMarkets.filter(
(market) =>
market.ACTIVEDAY.toLowerCase().includes("saturday") ||
market.ACTIVEDAY.toLowerCase().includes("sunday")
);
const weekendRecreation = mobileRecreationProgramming.filter(
(program) =>
program["Day of Week"].includes("Saturday") ||
program["Day of Week"].includes("Sunday")
);
import { emeraldCityResourceGuide } from "seattle-open-json";
const mentalHealthResources = emeraldCityResourceGuide.filter((resource) =>
resource.categories.some(
(category) =>
category.toLowerCase().includes("mental health") ||
category.toLowerCase().includes("counseling")
)
);
const foodResources = emeraldCityResourceGuide.filter((resource) =>
resource.categories.some(
(category) =>
category.toLowerCase().includes("food") ||
category.toLowerCase().includes("nutrition")
)
);
communityCenters
- Seattle community centersfarmersMarkets
- Local farmers marketsparksCatalog
- Complete parks catalogmobileRecreationProgramming
- Mobile recreation programspPatch
- Community gardenspicnicSites
- Reservable picnic areasprivatelyOwnedPublicSpaces
- POPS locationsyouth_programs
- Youth programs and activitiesemeraldCityResourceGuide
- Community resources directoryseattleYouthOrganization
- HSDS example organization
Complete HSDS-compliant example data for testing and development:
programs
- Example youth programsservices
- Detailed service offeringslocations
- Physical locations and addressesserviceAtLocations
- Service-location relationshipscontacts
- Contact informationtaxonomyTerms
- Service categorizationattributes
- Additional service attributescostOptions
- Pricing informationrequiredDocuments
- Required documentationorganizationIdentifiers
- Organization IDsserviceCapacities
- Capacity informationmetadataRecords
- Data provenancetaxonomies
- Taxonomy definitionsmetaTableDescriptions
- Schema descriptionsphoneNumbers
- Phone contact detailsaddresses
- Physical addressesschedules
- Operating scheduleslanguages
- Supported languagesaccessibilityFeatures
- Accessibility informationserviceAreas
- Geographic coverageadditionalUrls
- Additional web resourcesfundingSources
- Funding informationseattleYouthHSDSExample
- Complete HSDS dataset
allSeattleData
- All datasets combinedrecreationOpportunities
- Recreation-focused datacommunityResources
- Community service dataallOpportunities
- All opportunities combined
All interfaces are exported for type-safe development:
- Core data types:
YouthProgram
,CommunityCenter
,FarmersMarket
, etc. - HSDS types:
Organization
,Service
,Location
,Contact
, etc.
packageMetadata
- Package information and statistics
import { packageMetadata } from "seattle-open-json";
console.log(packageMetadata.totalRecords);
// {
// communityCenters: 27,
// farmersMarkets: 23,
// parksCatalog: 485,
// mobileRecreationProgramming: 156,
// pPatch: 91,
// picnicSites: 201,
// privatelyOwnedPublicSpaces: 40,
// youth_programs: 1105,
// emeraldCityResourceGuide: 1421,
// total: 2018
// }
This is a community-driven project! We welcome contributions to:
- Add new data sources
- Improve data quality
- Enhance TypeScript definitions
- Add utility functions
MIT License - see LICENSE file for details.
- Repository: https://github.com/mikhael28/seattle-open-json
- npm Package: https://www.npmjs.com/package/seattle-open-json
Built with β€οΈ for the Seattle community by Michael Nightingale