Form A - Basic Grant
Summary
12 total questions | 100% mapped to the CommonGrants schema
Basic grant application form
Details
Sample version of the rendered form.
What the form data looks like when it is submitted.
{ "applicantName": { "firstName": "Alice", "lastName": "Alvarez" }, "projectTitle": "Project A", "projectDescription": "Project A", "applicantType": "Nonprofit", "requestedAmount": "1000", "startDate": "2025-07-01", "endDate": "2026-07-01", "applicantTitle": "Project Manager", "applicantEmail": "email@example.com", "applicantPhone": "555-111-2222", "organizationName": "Example Organization"}
UI and JSON schemas used to render and validate the form.
JSON schema
{ "type": "object", "properties": { "applicantName": { "type": "object", "properties": { "firstName": { "type": "string", "title": "First Name" }, "lastName": { "type": "string", "title": "Last Name" } }, "title": "Applicant Name", "required": [ "firstName", "lastName" ] }, "projectTitle": { "type": "string", "title": "Project Title" }, "projectDescription": { "type": "string", "title": "Project Description" }, "applicantType": { "type": "string", "title": "Applicant Type", "enum": [ "Nonprofit", "For-profit", "Government", "Individual", "Other" ] }, "requestedAmount": { "type": "string", "title": "Requested Amount (USD)" }, "startDate": { "type": "string", "format": "date", "title": "Proposed Start Date" }, "endDate": { "type": "string", "format": "date", "title": "Proposed End Date" }, "applicantTitle": { "type": "string", "title": "Applicant Title" }, "applicantEmail": { "type": "string", "format": "email", "title": "Applicant Email" }, "applicantPhone": { "type": "string", "title": "Applicant Phone" }, "organizationName": { "type": "string", "title": "Organization Name" } }, "required": [ "applicantName", "projectTitle", "projectDescription", "applicantType", "requestedAmount", "startDate", "endDate", "applicantTitle", "applicantEmail", "applicantPhone", "organizationName" ]}
UI Schema
{ "type": "VerticalLayout", "elements": [ { "type": "Group", "label": "Applicant Name", "elements": [ { "type": "Control", "scope": "#/properties/applicantName/properties/firstName" }, { "type": "Control", "scope": "#/properties/applicantName/properties/lastName" } ] }, { "type": "Control", "scope": "#/properties/projectTitle" }, { "type": "Control", "scope": "#/properties/applicantType" }, { "type": "Control", "scope": "#/properties/requestedAmount" }, { "type": "Control", "scope": "#/properties/startDate" } ]}
Mappings between the form and the CommonGrants schema.
Mapping to CommonGrants
{ "title": { "field": "projectTitle" }, "description": { "field": "projectDescription" }, "amountRequested": { "amount": { "field": "requestedAmount" }, "currency": "USD" }, "projectTimeline": { "startDate": { "name": "Project Start Date", "eventType": "singleDate", "date": { "field": "startDate" } }, "endDate": { "name": "Project End Date", "eventType": "singleDate", "date": { "field": "endDate" } } }, "contacts": { "primary": { "name": { "firstName": { "field": "applicantName.firstName" }, "lastName": { "field": "applicantName.lastName" } }, "title": { "field": "applicantTitle" }, "emails": { "primary": { "field": "applicantEmail" } }, "phones": { "primary": { "countryCode": "+1", "number": { "field": "applicantPhone" }, "isMobile": false } } } }, "organizations": { "primary": { "id": "00000000-0000-0000-0000-000000000000", "name": { "field": "organizationName" }, "orgType": { "term": { "field": "applicantType" }, "class": "Organization types", "code": "UC000000" } } }}
Mapping from CommonGrants
{ "applicantName": { "firstName": { "field": "contacts.primary.name.firstName" }, "lastName": { "field": "contacts.primary.name.lastName" } }, "projectTitle": { "field": "title" }, "projectDescription": { "field": "description" }, "applicantType": { "field": "organizations.primary.orgType.term" }, "requestedAmount": { "field": "amountRequested.amount" }, "startDate": { "field": "projectTimeline.startDate.date" }, "endDate": { "field": "projectTimeline.endDate.date" }, "applicantTitle": { "field": "contacts.primary.title" }, "applicantEmail": { "field": "contacts.primary.emails.primary" }, "applicantPhone": { "field": "contacts.primary.phones.primary.number" }, "organizationName": { "field": "organizations.primary.name" }}