Skip to content

Instantly share code, notes, and snippets.

@scragz
Created October 20, 2024 10:55
Show Gist options
  • Save scragz/0d92118efb5294afe25579b870a04e1a to your computer and use it in GitHub Desktop.
Save scragz/0d92118efb5294afe25579b870a04e1a to your computer and use it in GitHub Desktop.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Resource Schema",
"type": "object",
"description": "Schema for resources that offer various services, including information on accessibility, availability, and more.",
"properties": {
"id": {
"type": "string",
"description": "A unique identifier assigned to each resource for tracking and reference."
},
"source": {
"type": "string",
"description": "The origin of the information, used for verification and credibility purposes."
},
"name": {
"type": "string",
"description": "The name of the resource, organization, or service being described."
},
"description": {
"type": "object",
"description": "Provides descriptions in multiple languages. Keys are language codes (e.g., 'en' for English, 'es' for Spanish).",
"patternProperties": {
"^.*$": {
"type": "string"
}
},
"additionalProperties": false
},
"category": {
"type": "array",
"description": "Categories or types that best describe the services provided by the resource.",
"items": {
"type": "string"
}
},
"target_population": {
"type": "array",
"description": "Specific groups served by the resource, such as seniors, veterans, or youth.",
"items": {
"type": "string"
}
},
"address": {
"type": "object",
"description": "The physical location of the resource, structured to include street, city, state, ZIP code, and country.",
"properties": {
"street": {
"type": "string",
"description": "The street address where the resource is located."
},
"city": {
"type": "string",
"description": "The city where the resource is located."
},
"state": {
"type": "string",
"description": "The state or region where the resource is located."
},
"zip": {
"type": "string",
"description": "The postal or ZIP code of the resource's location."
},
"country": {
"type": "string",
"description": "The country where the resource is based."
}
},
"required": ["street", "city", "state", "zip", "country"],
"additionalProperties": false
},
"location": {
"type": "object",
"description": "Geographic coordinates (latitude and longitude) for mapping the resource's location.",
"properties": {
"latitude": {
"type": "number",
"description": "The latitude coordinate for the resource's geographic location."
},
"longitude": {
"type": "number",
"description": "The longitude coordinate for the resource's geographic location."
}
},
"required": ["latitude", "longitude"],
"additionalProperties": false
},
"contact": {
"type": "object",
"description": "Contact details for the resource, including phone numbers, email addresses, and website URLs.",
"properties": {
"phone": {
"type": "array",
"description": "List of phone numbers for contacting the resource.",
"items": {
"type": "string"
}
},
"email": {
"type": "array",
"description": "List of email addresses associated with the resource.",
"items": {
"type": "string",
"format": "email"
}
},
"website": {
"type": "array",
"description": "List of website URLs related to the resource.",
"items": {
"type": "string",
"format": "uri"
}
}
},
"additionalProperties": false
},
"hours": {
"type": "object",
"description": "The hours of operation for the resource, broken down by each day of the week.",
"properties": {
"mon": {
"type": "array",
"description": "Operating hours on Monday.",
"items": {
"type": "string"
}
},
"tue": {
"type": "array",
"description": "Operating hours on Tuesday.",
"items": {
"type": "string"
}
},
"wed": {
"type": "array",
"description": "Operating hours on Wednesday.",
"items": {
"type": "string"
}
},
"thu": {
"type": "array",
"description": "Operating hours on Thursday.",
"items": {
"type": "string"
}
},
"fri": {
"type": "array",
"description": "Operating hours on Friday.",
"items": {
"type": "string"
}
},
"sat": {
"type": "array",
"description": "Operating hours on Saturday.",
"items": {
"type": "string"
}
},
"sun": {
"type": "array",
"description": "Operating hours on Sunday.",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"availability": {
"type": "object",
"description": "Information on the current availability of the resource, including real-time status and last update.",
"properties": {
"real_time": {
"type": "boolean",
"description": "Indicates whether the availability status is updated in real time."
},
"last_updated": {
"type": "string",
"format": "date-time",
"description": "The timestamp indicating when the availability information was last updated."
},
"details": {
"type": "string",
"description": "Additional information about the resource's availability, if applicable."
}
},
"additionalProperties": false
},
"accessibility": {
"type": "object",
"description": "Details about the resource's accessibility features, such as ADA compliance and language support.",
"properties": {
"ada_compliant": {
"type": "boolean",
"description": "Specifies whether the resource meets ADA (Americans with Disabilities Act) accessibility standards."
},
"wheelchair_accessible": {
"type": "boolean",
"description": "Indicates whether the resource is accessible by wheelchair."
},
"languages": {
"type": "array",
"description": "Languages that staff or services are available in at the resource.",
"items": {
"type": "string"
}
},
"other_features": {
"type": "array",
"description": "Other accessibility features available at the resource, such as braille signage or hearing assistance devices.",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"services": {
"type": "array",
"description": "A list of services offered by the resource, such as 'Food Bank' or 'Shelter.'",
"items": {
"type": "string"
}
},
"eligibility_criteria": {
"type": "array",
"description": "Conditions that individuals must meet to be eligible for the resource's services.",
"items": {
"type": "string"
}
},
"documents_required": {
"type": "array",
"description": "Any documents needed to access the services, such as ID or proof of residency.",
"items": {
"type": "string"
}
},
"cost": {
"type": "object",
"description": "Information on the costs associated with the services, including whether the service is free.",
"properties": {
"free": {
"type": "boolean",
"description": "Specifies if the services are provided free of charge."
},
"details": {
"type": "string",
"description": "Additional information about any costs or fees associated with the services."
}
},
"additionalProperties": false
},
"referral_required": {
"type": "boolean",
"description": "Indicates if a referral from another agency or professional is needed to access the services."
},
"appointment_required": {
"type": "boolean",
"description": "Specifies whether an appointment is necessary to use the services."
},
"feedback": {
"type": "object",
"description": "User feedback data, including ratings and reviews submitted by those who have used the resource.",
"properties": {
"rating": {
"type": "number",
"description": "The average user rating for the resource, usually on a scale of 1 to 5."
},
"reviews": {
"type": "array",
"description": "A list of reviews submitted by users, detailing their experiences with the resource.",
"items": {
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The unique identifier of the user who submitted the review."
},
"comment": {
"type": "string",
"description": "The content of the user's review."
},
"rating": {
"type": "number",
"description": "The rating given by the user, usually on a scale of 1 to 5."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The date and time when the review was submitted."
}
},
"required": ["user_id", "comment", "rating", "timestamp"],
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"tags": {
"type": "array",
"description": "Keywords associated with the resource to improve searchability and categorization.",
"items": {
"type": "string"
}
},
"metadata": {
"type": "object",
"description": "Administrative data used for tracking the creation, updates, and verification of the resource's information.",
"properties": {
"created_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp indicating when the resource was initially created in the system."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "The timestamp for the most recent update to the resource's information."
},
"verified": {
"type": "boolean",
"description": "Indicates whether the information has been verified for accuracy and currency."
},
"verified_by": {
"type": "string",
"description": "The name or identifier of the person or organization that verified the information."
},
"verification_date": {
"type": "string",
"format": "date-time",
"description": "The date when the information was last verified."
}
},
"additionalProperties": false
},
"security": {
"type": "object",
"description": "Information related to data privacy and compliance with relevant security standards.",
"properties": {
"data_privacy_level": {
"type": "string",
"description": "The level of sensitivity for the data associated with the resource, such as 'Low,' 'Medium,' or 'High.'"
},
"compliance": {
"type": "array",
"description": "Security and privacy standards that the resource adheres to, such as 'HIPAA.'",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"crisis_support": {
"type": "object",
"description": "Information about crisis support services available, including hotlines and emergency assistance.",
"properties": {
"crisis_line": {
"type": "array",
"description": "Emergency hotline numbers for crisis situations.",
"items": {
"type": "string"
}
},
"support_services": {
"type": "array",
"description": "A list of crisis intervention services offered, such as counseling or emergency shelter.",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"required": ["id", "name"],
"additionalProperties": false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment