Skip to content

Activities & Participants

Overview

Activities log the actual work done to achieve project outputs. Participants are the people who attend, benefit from, or are reached by those activities. Participant data can feed directly into indicator values (e.g., "# of people trained").


Activities

Data Structure

FieldTypeDescription
iduuid
projectIduuidParent project
outputIduuidLinked result framework Output node
titlestringActivity title
descriptiontextWhat was done
startDatedate
endDatedate
locationstringWhere it happened
facilitatorstringWho led it
statusenumplanned, in_progress, completed, cancelled

Create an activity

http
POST /orgs/:orgId/projects/:projectId/activities
{
  "title": "Community WASH training",
  "outputId": "uuid",
  "startDate": "2026-03-10",
  "endDate": "2026-03-10",
  "location": "Kigali, Gasabo District",
  "facilitator": "Jean Baptiste M.",
  "status": "completed"
}

Activity list (frontend)

Navigate to ProjectActivities tab. Activities are sorted by date, grouped by output node. Each row shows participant count and links to the detail page.


Participants

Participants are individuals registered for a specific activity. Each participant can optionally have household member records (for household-level data collection).

Participant Data Structure

FieldTypeDescription
iduuid
firstNamestring
lastNamestring
sexenumfemale, male, other
dateOfBirthdateFor age disaggregation
phonestringOptional contact
nationalIdstringOptional ID number
villagestring
districtstring

ActivityParticipant (join)

FieldTypeDescription
iduuid
activityIduuid
participantIduuid
rolestringe.g. "attendee", "facilitator"
attendedbooleanConfirmed attendance
registeredAttimestamp

Register participants

http
POST /orgs/:orgId/activities/:activityId/participants
{
  "participants": [
    {
      "firstName": "Amina",
      "lastName": "Uwase",
      "sex": "female",
      "dateOfBirth": "1990-05-15",
      "village": "Nyamirambo",
      "district": "Kigali"
    }
  ]
}

Household Members

For household surveys, each participant can have family members registered:

http
POST /orgs/:orgId/participants/:participantId/household-members
{
  "name": "Emmanuel Uwase",
  "relationship": "son",
  "sex": "male",
  "age": 8
}

Aggregating Participant Data into Indicators

After an activity, the system can compute indicator values from participant counts:

  1. Go to ActivityParticipants
  2. Click Push to Indicator
  3. Select the indicator and reporting period
  4. The system pre-fills the value based on COUNT(participants) disaggregated by sex/age

This eliminates manual counting and ensures the indicator value matches the participant register.


API Reference

MethodPathDescription
GET/orgs/:orgId/projects/:projectId/activitiesList activities
POST/orgs/:orgId/projects/:projectId/activitiesCreate activity
GET/orgs/:orgId/activities/:idGet activity
PATCH/orgs/:orgId/activities/:idUpdate activity
DELETE/orgs/:orgId/activities/:idDelete activity
GET/orgs/:orgId/activities/:id/participantsList participants
POST/orgs/:orgId/activities/:id/participantsRegister participants
DELETE/orgs/:orgId/activities/:activityId/participants/:participantIdRemove participant
GET/orgs/:orgId/participants/:idGet participant
PATCH/orgs/:orgId/participants/:idUpdate participant
POST/orgs/:orgId/participants/:id/household-membersAdd household member

ImpactMEL — Enterprise M&E Platform