Form A - Basic Grant
Summary
23 total questions | 100% mapped to the CommonGrants schema
Basic grant application form
Details
Sample version of the rendered form.
The organization's legal name
Type of applicant organization
The title of the project
A description of the project
The amount of money
The ISO 4217 currency code in which the amount is denominated
The project start date (ISO 8601 format: YYYY-MM-DD)
The project end date (ISO 8601 format: YYYY-MM-DD)
Form Data
What the form data looks like when it is submitted.
{ "contact": { "name": { "firstName": "Alice", "lastName": "Alvarez" }, "title": "Project Manager", "email": "email@example.com", "phone": { "countryCode": "+1", "number": "555-111-2222" } }, "org": { "name": "Example Organization" }, "applicantType": "Nonprofit", "project": { "title": "Project A", "description": "Project A", "amountRequested": { "amount": "1000", "currency": "USD" }, "startDate": "2025-07-01", "endDate": "2026-07-01" }}JSON Schema
Provides the structure and data validation for this form.
{ "title": "Form A - Basic Grant", "description": "Form A - Basic Grant Application.\n\nA basic grant application form capturing applicant contact info,\norganization name, applicant type, and project details.", "type": "object", "required": [ "contact", "org", "applicantType", "project" ], "properties": { "contact": { "description": "Primary point of contact / applicant", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "The contact's full name", "type": "object", "required": [ "firstName", "lastName" ], "properties": { "prefix": { "description": "Honorific prefix", "type": "string", "enum": [ "Mr.", "Ms.", "Mrs.", "Dr.", "Prof." ] }, "firstName": { "type": "string", "description": "First or given name" }, "middleName": { "type": "string", "description": "Middle name" }, "lastName": { "type": "string", "description": "Last or family name" }, "suffix": { "description": "Name suffix", "type": "string", "enum": [ "Jr.", "Sr.", "II", "III", "IV", "Ph.D.", "M.D.", "Esq." ] } } }, "title": { "type": "string", "description": "The contact's job title or role" }, "address": { "description": "The contact's mailing address", "type": "object", "required": [ "street1", "city", "state", "country", "postalCode" ], "properties": { "street1": { "type": "string", "description": "The primary street address line" }, "street2": { "type": "string", "description": "Additional street address information" }, "city": { "type": "string", "description": "The city or municipality" }, "state": { "description": "The US state, territory, or \"Outside the US\"", "type": "string", "enum": [ "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "DC", "AS", "GU", "MP", "PR", "VI", "Outside the US" ] }, "stateOrProvince": { "type": "string", "description": "State or province name (for non-US addresses)" }, "country": { "type": "string", "description": "The country" }, "postalCode": { "type": "string", "description": "The postal or ZIP code" } } }, "phone": { "description": "The contact's phone number", "type": "object", "required": [ "countryCode", "number" ], "properties": { "countryCode": { "type": "string", "pattern": "^\\+[1-9][0-9]{0,3}$", "description": "The international country code (e.g., \"+1\" for US/Canada)." }, "number": { "type": "string", "description": "The local phone number without the country code." }, "extension": { "type": "string", "description": "Optional extension number for the phone line." }, "isMobile": { "type": "boolean", "default": false, "description": "Indicates whether this is a mobile/cell phone number." } } }, "email": { "description": "The contact's email address", "type": "string", "format": "email" } } }, "org": { "description": "Applicant organization", "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "The organization's legal name" } } }, "applicantType": { "description": "Type of applicant organization", "type": "string", "enum": [ "Nonprofit", "For-profit", "Government", "Individual", "Other" ] }, "project": { "description": "Project details", "type": "object", "properties": { "title": { "type": "string", "description": "The title of the project" }, "description": { "type": "string", "description": "A description of the project" }, "amountRequested": { "description": "The amount of funding requested", "type": "object", "required": [ "amount", "currency" ], "properties": { "amount": { "description": "The amount of money", "type": "string", "pattern": "^-?[0-9]+\\.?[0-9]*$" }, "currency": { "type": "string", "description": "The ISO 4217 currency code in which the amount is denominated" } } }, "startDate": { "type": "string", "format": "date", "description": "The project start date (ISO 8601 format: YYYY-MM-DD)" }, "endDate": { "type": "string", "format": "date", "description": "The project end date (ISO 8601 format: YYYY-MM-DD)" } } } }}UI Schema (merged)
Describes how to present the form. Reflects any per-form
x-overrides.uiSchema patches applied on top of the inherited
question-bank UI schemas.
{ "type": "VerticalLayout", "elements": [ { "type": "Group", "label": "Applicant Information", "elements": [ { "type": "Group", "label": "Name", "elements": [ { "type": "Control", "scope": "#/properties/contact/properties/name/properties/prefix", "label": "Prefix", "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/contact/properties/name/properties/prefix", "schema": {} } } }, { "type": "Control", "scope": "#/properties/contact/properties/name/properties/firstName", "label": "First Name" }, { "type": "Control", "scope": "#/properties/contact/properties/name/properties/middleName", "label": "Middle Name" }, { "type": "Control", "scope": "#/properties/contact/properties/name/properties/lastName", "label": "Last Name" }, { "type": "Control", "scope": "#/properties/contact/properties/name/properties/suffix", "label": "Suffix", "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/contact/properties/name/properties/suffix", "schema": {} } } } ] }, { "type": "Control", "scope": "#/properties/contact/properties/title", "label": "Job Title" }, { "type": "Group", "label": "Mailing Address", "elements": [ { "type": "Control", "scope": "#/properties/contact/properties/address/properties/street1", "label": "Street Address (Line 1)" }, { "type": "Control", "scope": "#/properties/contact/properties/address/properties/street2", "label": "Street Address (Line 2)" }, { "type": "Control", "scope": "#/properties/contact/properties/address/properties/city", "label": "City" }, { "type": "Control", "scope": "#/properties/contact/properties/address/properties/state", "label": "State" }, { "type": "Control", "scope": "#/properties/contact/properties/address/properties/country", "label": "Country" }, { "type": "Control", "scope": "#/properties/contact/properties/address/properties/postalCode", "label": "Postal Code" } ] }, { "type": "Group", "label": "Phone Number", "elements": [ { "type": "Control", "scope": "#/properties/contact/properties/phone/properties/countryCode", "label": "Country Code" }, { "type": "Control", "scope": "#/properties/contact/properties/phone/properties/number", "label": "Phone Number" }, { "type": "Control", "scope": "#/properties/contact/properties/phone/properties/extension", "label": "Extension" }, { "type": "Control", "scope": "#/properties/contact/properties/phone/properties/isMobile", "label": "Is Mobile?" } ] }, { "type": "Control", "scope": "#/properties/contact/properties/email", "label": "Email Address" } ] }, { "type": "VerticalLayout", "elements": [ { "type": "Control", "scope": "#/properties/org/properties/name", "label": "Organization Name" } ] }, { "type": "Control", "scope": "#/properties/applicantType", "label": "Applicant Type" }, { "type": "Group", "label": "Project Details", "elements": [ { "type": "Control", "scope": "#/properties/project/properties/title", "label": "Project Title" }, { "type": "Control", "scope": "#/properties/project/properties/description", "label": "Project Description", "options": { "multi": true } }, { "type": "Group", "label": "Amount Requested", "elements": [ { "type": "Control", "scope": "#/properties/project/properties/amountRequested/properties/amount", "label": "Requested Amount (USD)" }, { "type": "Control", "scope": "#/properties/project/properties/amountRequested/properties/currency", "label": "Currency Code" } ] }, { "type": "Control", "scope": "#/properties/project/properties/startDate", "label": "Project Start Date" }, { "type": "Control", "scope": "#/properties/project/properties/endDate", "label": "Project End Date" } ] } ]}Mapping to CommonGrants
How to translate this form into the CommonGrants data model.
{ "contacts": { "primary": { "name": { "prefix": { "field": "contact.name.prefix" }, "firstName": { "field": "contact.name.firstName" }, "middleName": { "field": "contact.name.middleName" }, "lastName": { "field": "contact.name.lastName" }, "suffix": { "field": "contact.name.suffix" } }, "title": { "field": "contact.title" }, "addresses": { "primary": { "street1": { "field": "contact.address.street1" }, "street2": { "field": "contact.address.street2" }, "city": { "field": "contact.address.city" }, "stateOrProvince": { "field": "contact.address.state" }, "country": { "field": "contact.address.country" }, "postalCode": { "field": "contact.address.postalCode" } } }, "phones": { "primary": { "countryCode": { "field": "contact.phone.countryCode" }, "number": { "field": "contact.phone.number" }, "extension": { "field": "contact.phone.extension" }, "isMobile": { "field": "contact.phone.isMobile" } } }, "emails": { "primary": { "field": "contact.email" } } } }, "organizations": { "primary": { "name": { "field": "org.name" } } }, "title": { "field": "project.title" }, "description": { "field": "project.description" }, "amountRequested": { "amount": { "field": "project.amountRequested.amount" }, "currency": { "field": "project.amountRequested.currency" } }, "projectTimeline": { "startDate": { "date": { "field": "project.startDate" } }, "endDate": { "date": { "field": "project.endDate" } } }}Mapping from CommonGrants
How to pre-fill this form with data from the CommonGrants data model.
{ "contact": { "name": { "prefix": { "field": "contacts.primary.name.prefix" }, "firstName": { "field": "contacts.primary.name.firstName" }, "middleName": { "field": "contacts.primary.name.middleName" }, "lastName": { "field": "contacts.primary.name.lastName" }, "suffix": { "field": "contacts.primary.name.suffix" } }, "title": { "field": "contacts.primary.title" }, "address": { "street1": { "field": "contacts.primary.addresses.primary.street1" }, "street2": { "field": "contacts.primary.addresses.primary.street2" }, "city": { "field": "contacts.primary.addresses.primary.city" }, "state": { "field": "contacts.primary.addresses.primary.stateOrProvince" }, "country": { "field": "contacts.primary.addresses.primary.country" }, "postalCode": { "field": "contacts.primary.addresses.primary.postalCode" } }, "phone": { "countryCode": { "field": "contacts.primary.phones.primary.countryCode" }, "number": { "field": "contacts.primary.phones.primary.number" }, "extension": { "field": "contacts.primary.phones.primary.extension" }, "isMobile": { "field": "contacts.primary.phones.primary.isMobile" } }, "email": { "field": "contacts.primary.emails.primary" } }, "org": { "name": { "field": "organizations.primary.name" } }, "applicantType": { "field": "organizations.primary.orgType.term" }, "project": { "title": { "field": "title" }, "description": { "field": "description" }, "amountRequested": { "amount": { "field": "amountRequested.amount" }, "currency": { "field": "amountRequested.currency" } }, "startDate": { "field": "projectTimeline.startDate.date" }, "endDate": { "field": "projectTimeline.endDate.date" } }}Per-form overrides (x-overrides)
The raw x-overrides block declared on the form spec.
Already merged into the UI schema and mappings shown above.
{ "uiSchema": { "contact": { "label": "Applicant Information" }, "applicantType": { "label": "Applicant Type" }, "contact.name.prefix": { "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/contact/properties/name/properties/prefix", "schema": {} } } }, "contact.name.suffix": { "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/contact/properties/name/properties/suffix", "schema": {} } } }, "org.name": { "label": "Organization Name" }, "project.amountRequested.amount": { "label": "Requested Amount (USD)" } }}