Skip to content

Programs & Projects

Hierarchy

Organization
  └── Program  (funded initiative, multi-year)
       └── Project  (implementation unit, single funder/location)

A Program groups related projects under a common results framework and can span multiple donors. A Project is the operational unit — it has a budget, a team, reporting periods, and generates indicator data.


Programs

Data Structure

FieldTypeDescription
iduuid
orgIduuidOwner organization
namestringProgram title
descriptiontextFull description
startDatedate
endDatedate
statusenumdraft, active, completed
donorsDonor[]Associated donors (many-to-many)

Create a program

http
POST /orgs/:orgId/programs
{
  "name": "WASH for All",
  "description": "...",
  "startDate": "2025-01-01",
  "endDate": "2027-12-31",
  "donorIds": ["uuid1", "uuid2"]
}

Frontend

Navigate to Programs in the sidebar. Click New Program to open the creation form. The form includes a Donor Combobox that lets you:

  • Select existing donors from your registry
  • Type a new donor name to create it inline (auto-creates the donor record)

Projects

Data Structure

FieldTypeDescription
iduuid
programIduuidParent program
namestringProject title
codestringShort identifier (e.g. "WASH-RW-01")
budgetdecimalTotal budget
currencyvarcharISO 4217 (e.g. "USD", "EUR", "RWF")
startDatedate
endDatedate
statusenumdraft, active, completed, suspended
locationstringCountry/region
leadstringLead implementing partner

Create a project

http
POST /orgs/:orgId/programs/:programId/projects
{
  "name": "Rwanda WASH Phase 1",
  "code": "WASH-RW-01",
  "budget": 500000,
  "currency": "USD",
  "startDate": "2025-01-01",
  "endDate": "2026-12-31"
}

Project Detail Page

The project detail page (/org/:orgId/projects/:id) includes:

  • Hero banner — name, status badge, progress bar (budget burn rate)
  • Stats row — total budget, spent, remaining, months to end
  • Tabs:
    • Overview — description, team, key dates
    • Indicators — linked indicators + latest values
    • Activities — activity log
    • Reports — assembled reports for this project
    • Budget — budget lines and burn rate chart

Linking Indicators to Projects

Indicators are defined org-wide but tracked per project. Linking is done via ProjectIndicator:

http
POST /orgs/:orgId/projects/:projectId/indicators
{ "indicatorId": "uuid", "target": 5000, "baseline": 0 }

Once linked, M&E officers can submit IndicatorReport records for each reporting period.


API Reference

MethodPathDescription
GET/orgs/:orgId/programsList all programs
POST/orgs/:orgId/programsCreate program
GET/orgs/:orgId/programs/:idGet program details
PATCH/orgs/:orgId/programs/:idUpdate program
DELETE/orgs/:orgId/programs/:idDelete program
GET/orgs/:orgId/programs/:programId/projectsList projects in program
POST/orgs/:orgId/programs/:programId/projectsCreate project
GET/orgs/:orgId/projects/:idGet project details
PATCH/orgs/:orgId/projects/:idUpdate project
DELETE/orgs/:orgId/projects/:idDelete project

ImpactMEL — Enterprise M&E Platform