Skip to content

Scholarship Programs

Scholarship programs in Miranda define the award amount, eligibility criteria, application deadline, and a custom form with configurable fields. Each program progresses through a defined lifecycle from draft to closed.

FieldTypeDescription
idUUIDPrimary key
foundation_idUUIDOwning foundation
namestringScholarship name
slugstringURL-safe identifier (used in public form URLs)
descriptionstring?Full description shown to applicants
amountintegerAward amount in cents
eligibilitystring?Eligibility requirements text
deadlinedate?Application deadline
max_awardsintegerMaximum number of awards to grant
form_fieldsJSON?Custom application form field definitions
statusScholarshipStatusLifecycle state
StatusDescription
draftBeing configured, not publicly visible
acceptingAccepting applications through the public form
reviewingApplications closed, review in progress
awardedAwards have been granted
closedProgram complete, no further activity
draft → accepting → reviewing → awarded → closed

The form_fields JSON column defines the application form schema. Each entry describes a field shown to applicants:

[
{
"name": "gpa",
"type": "number",
"label": "Current GPA",
"required": true
},
{
"name": "essay",
"type": "textarea",
"label": "Why do you deserve this scholarship?",
"required": true
},
{
"name": "transcript",
"type": "file",
"label": "Upload your transcript",
"required": false
}
]

Applicant responses are stored on the ScholarshipApplication model in the responses JSON column, keyed by field name.

When a scholarship is in accepting status, it has a public form accessible at:

/scholarships/{foundationSlug}/{scholarshipSlug}

These are Blade-rendered pages (not SPA routes) for SEO and accessibility. The form collects the applicant’s name, email, and responses to the custom form_fields.

Applications can also be submitted via the API:

  • Public API (no auth): POST /api/scholarships/applications
  • Donor portal (authenticated): POST /api/donor/applications

Scholarships can be linked to donation pages of type scholarship. When creating a scholarship donation page, set type_config.scholarship_id to connect donations to a specific scholarship fund.

PlanMax scholarships
Starter1
Growth3
ProUnlimited
RelationshipTypeTarget
foundation()BelongsToFoundation
applications()HasManyScholarshipApplication
disbursements()HasManyDisbursement
MethodPathDescription
GET/api/scholarshipsList scholarships
POST/api/scholarshipsCreate a scholarship
GET/api/scholarships/{id}Show a scholarship
PUT/api/scholarships/{id}Update a scholarship
DELETE/api/scholarships/{id}Delete a scholarship
GET/api/scholarships/{id}/applicationsList applications for a scholarship