Skip to main content

Scholarships

Scholarships

Last Updated: April 29, 2026 Status: V1

Overview

Scholarships is a Pro+ Tools hub feature for creating scholarship programs, publishing public application links, collecting standalone applicant records, and reviewing applications through a simple status pipeline.

Component: src/features/tools/components/ScholarshipManager.tsx DB module: src/lib/db/scholarships.ts Route / navigation: /tools/scholarships, Zustand toolsTool = scholarships. See 00-TOOLS-HUB.md. Desktop only: Staff management uses DesktopOnlyWarning below the md breakpoint. Public scholarship pages are mobile-friendly.

Staff Workflow

The staff manager uses the Styling Guide page shell: Breadcrumb, PageHeader, summary cards, PillTabs, semantic badges, responsive filters, and overflow-safe tables.

Scholarships tab

Staff can create, edit, build, publish, close, and archive programs for the selected entity. The public application builder is intentionally part of this tab so staff can move from program setup to application questions without switching workflows. Each program stores:

  • title and public slug
  • award amount
  • application deadline
  • available slots
  • eligibility text
  • public description
  • status: draft, open, closed, or archived

Open programs expose public list and application URLs. Draft, closed, archived, and past-deadline programs are not returned by the public Edge Function. Staff copy/preview controls should stay disabled for non-open programs.

Applications tab

Staff can search and filter submitted applications by applicant, email, scholarship program, and status. The scholarship filter is required so reviewers can separate high-volume application queues by program. V1 statuses are:

  • submitted
  • under_review
  • approved
  • rejected
  • awarded
  • withdrawn

Reviewers can update status, award amount, and internal review notes. Status changes do not post ledger activity.

Application builder

Each scholarship program can have active custom questions. Question types mirror Volunteer Applications V1:

  • text
  • textarea
  • select
  • radio
  • checkbox

Questions support required flags, options for choice-based types, sort order, and soft archive via is_active = false.

Public Routes

  • /scholarships/:orgIdPrefix/:slug lists open scholarship programs for the public organization route segment.
  • /scholarship-apply/:orgIdPrefix/:slug/:scholarshipSlug renders the public application form for one open program.

The public route segment must match organizations.public_org_key when present, otherwise the organization id prefix. The applicant form posts only to Edge Functions; public users do not write scholarship tables directly.

Permissions And Tier

  • Minimum tier: Pro.
  • Allowed tiers: pro, enterprise, demo, and internal.
  • Blocked tiers: Free and Plus.
  • Custom permission tree id: scholarships, mapped to the Tools hub.
  • Staff table access is enforced through RLS scoped to the authenticated user's organization tree.
  • Public access is mediated by Edge Functions using service role plus explicit tier, status, deadline, required-field, duplicate, honeypot, and rate-limit validation.

Backend

Tables:

  • scholarship_programs
  • scholarship_application_questions
  • scholarship_applications

Edge Functions:

  • get-scholarship-application-config
  • submit-scholarship-application

New submissions enqueue staff notifications through notification_queue.

Accounting Boundary

V1 records award decisions and optional award amounts only. It does not create expenses, bills, journal entries, payments, budget requests, restricted-fund releases, or any other accounting records.

Related Files

  • src/features/tools/components/ScholarshipManager.tsx
  • src/features/tools/components/public/PublicScholarshipsLoader.tsx
  • src/features/tools/components/public/PublicScholarshipApplicationLoader.tsx
  • src/features/tools/scholarshipPublicUtils.ts
  • src/lib/db/scholarships.ts
  • supabase/functions/get-scholarship-application-config/index.ts
  • supabase/functions/submit-scholarship-application/index.ts
  • supabase/migrations/20260429121000_scholarship_applications.sql
  • supabase/migrations/20260429174000_scholarship_application_integrity_guards.sql
  • documentation/decisions/ADR-0002-scholarship-standalone-applicants.md

Synced from IFMmvp-Frontend documentation: pages/tools/17-SCHOLARSHIPS.md

Ready to Get Started?

See how Alignmint can simplify your nonprofit's operations. Schedule a free demo with our team and we'll walk you through everything.

Questions? Email us at steven@getalignmint.org

Ready to get started?Start Plus Trial