Activity Type Configuration
Feature Detail
Description
A per-organisation catalogue of activity types that controls what options appear in the registration wizard. Each organisation has different terminology and different categories of work that count as peer mentoring activity — NHF distinguishes group events from one-on-one contact, Blindeforbundet uses assignment-based types tied to honorarium tiers, and HLF separates compensated from uncompensated work explicitly. Activity types carry metadata: whether the type is eligible for travel expense claims, whether it requires a structured report form, whether it triggers a reimbursement workflow, and which Bufdir reporting category it maps to. This metadata drives downstream behaviour throughout the app rather than requiring duplicate logic in every feature.
Analysis
Correct activity type metadata is the single point of truth for reimbursement eligibility, Bufdir categorisation, and honorarium calculation. Miscategorisation at this layer propagates errors into financial exports and grant reports, making accurate configuration a financial compliance concern.
Store activity types in Supabase with an org_id foreign key and a JSON metadata column. Admin portal manages the catalogue. Mobile app fetches types on login and caches locally via Riverpod AsyncNotifier. The existing organisation labels system should be extended to cover activity type display names.
Components (202)
Shared Components
These components are reused across multiple features
User Interface (59)
Service Layer (52)
Data Layer (33)
Infrastructure (54)
User Stories (14)
As a As a Coordinator
I want to archive an activity type that is no longer relevant so it no longer appears in the peer mentor selection screen, while preserving historical activity records that used it
So that the list of choices during activity registration stays clean and relevant, reducing decision fatigue for peer mentors, without losing historical reporting data
- Given I am on the activity type form or admin screen, When I tap 'Archive' on an active type and confirm the dialog, Then the type is marked inactive
- Given an activity type is archived, When a peer mentor opens the activity type selection screen, Then the archived type does not appear in the list
- Given an activity type is archived, When I run a Bufdir export for a historical period, Then activities registered under the archived type are still included in the export
- +3 more
As a As a Organization Administrator
I want to archive an activity type that is no longer relevant so it no longer appears in the peer mentor selection screen, while preserving historical activity records that used it
So that the list of choices during activity registration stays clean and relevant, reducing decision fatigue for peer mentors, without losing historical reporting data
- Given I am on the activity type form or admin screen, When I tap 'Archive' on an active type and confirm the dialog, Then the type is marked inactive
- Given an activity type is archived, When a peer mentor opens the activity type selection screen, Then the archived type does not appear in the list
- Given an activity type is archived, When I run a Bufdir export for a historical period, Then activities registered under the archived type are still included in the export
- +3 more
As a As a Coordinator
I want to edit the details of an existing activity type including its name, description, default duration, and category mapping
So that I can correct mistakes, update terminology when organizational requirements change, and keep activity type metadata accurate over time without creating duplicate types
- Given I tap an existing activity type in the admin list, When the form screen opens, Then all existing values are pre-populated in the correct fields
- Given I edit the name field, When I save, Then the updated name appears in the admin list and in the peer mentor selection screen immediately
- Given I change the default duration, When a peer mentor next selects this activity type, Then the updated duration is pre-filled in the duration step
- +3 more
As a As a Coordinator
I want to view a list of all activity types configured for my organization and manage them from a central admin screen
So that I can ensure peer mentors have the correct set of activity types available when registering their work, reflecting our organization's terminology and workflows
- Given I am logged in as a Coordinator, When I navigate to the activity type admin screen, Then I see a list of all activity types belonging to my organization
- Given the activity type list is loaded, When I view each entry, Then I can see the name, status (active/archived), and a short description for each type
- Given I am on the admin screen, When I tap 'Create New Activity Type', Then I am taken to the activity type form screen
- +3 more
As a As a Coordinator
I want to create a new activity type by filling in a structured form with name, description, default duration, and Bufdir category mapping
So that peer mentors can select it during activity registration and the activity is automatically mapped to the correct Bufdir reporting category without manual intervention
- Given I am on the activity type form screen, When I fill in the name and description fields and submit, Then a new activity type is created and appears in the admin list
- Given I am filling the form, When I set a default duration, Then this duration pre-fills the duration step when a peer mentor selects this activity type during registration
- Given I am filling the form, When I select a Bufdir category from the dropdown, Then the system stores the mapping used for automated Bufdir report generation
- +3 more
As a As a Coordinator
I want to mark specific activity types as typically involving expense claims (e.g., travel reimbursement) when configuring them, and to optionally require a receipt for certain types
So that the registration flow can automatically prompt for expense details only when relevant, preventing peer mentors from missing required expense submissions and coordinators from manually chasing missing receipts
- Given I am on the activity type form screen, When I toggle 'Involves Expenses', Then an additional option appears to set whether a receipt is required
- Given an activity type has 'Involves Expenses' set to false, When a peer mentor selects that type, Then the expense registration step is skipped in the wizard
- Given an activity type has 'Involves Expenses' set to true, When a peer mentor selects that type, Then the expense registration step is included in the wizard
- +3 more
As a As a Coordinator
I want to explicitly map each activity type to the correct Bufdir reporting category during configuration so that automated Bufdir exports are generated without manual reclassification
So that our organization's annual Bufdir submission is accurate and can be generated with a single action, saving significant administrative time and reducing the risk of misclassification penalties
- Given I am on the activity type form screen, When I view the Bufdir category field, Then I see a dropdown with the current valid Bufdir categories
- Given I select a Bufdir category, When I save the activity type, Then the mapping is persisted and associated with all future activities of this type
- Given activities have been registered using this type, When the Bufdir export service runs for a reporting period, Then activities are automatically grouped under the correct Bufdir category based on their type mapping
- +3 more
As a As a Organization Administrator
I want to edit the details of an existing activity type including its name, description, default duration, and category mapping
So that I can correct mistakes, update terminology when organizational requirements change, and keep activity type metadata accurate over time without creating duplicate types
- Given I tap an existing activity type in the admin list, When the form screen opens, Then all existing values are pre-populated in the correct fields
- Given I edit the name field, When I save, Then the updated name appears in the admin list and in the peer mentor selection screen immediately
- Given I change the default duration, When a peer mentor next selects this activity type, Then the updated duration is pre-filled in the duration step
- +3 more
As a As a Organization Administrator
I want to view a list of all activity types configured for my organization and manage them from a central admin screen
So that I can ensure peer mentors have the correct set of activity types available when registering their work, reflecting our organization's terminology and workflows
- Given I am logged in as a Coordinator, When I navigate to the activity type admin screen, Then I see a list of all activity types belonging to my organization
- Given the activity type list is loaded, When I view each entry, Then I can see the name, status (active/archived), and a short description for each type
- Given I am on the admin screen, When I tap 'Create New Activity Type', Then I am taken to the activity type form screen
- +3 more
As a As a Organization Administrator
I want to create a new activity type by filling in a structured form with name, description, default duration, and Bufdir category mapping
So that peer mentors can select it during activity registration and the activity is automatically mapped to the correct Bufdir reporting category without manual intervention
- Given I am on the activity type form screen, When I fill in the name and description fields and submit, Then a new activity type is created and appears in the admin list
- Given I am filling the form, When I set a default duration, Then this duration pre-fills the duration step when a peer mentor selects this activity type during registration
- Given I am filling the form, When I select a Bufdir category from the dropdown, Then the system stores the mapping used for automated Bufdir report generation
- +3 more
As a As a Organization Administrator
I want to mark specific activity types as typically involving expense claims (e.g., travel reimbursement) when configuring them, and to optionally require a receipt for certain types
So that the registration flow can automatically prompt for expense details only when relevant, preventing peer mentors from missing required expense submissions and coordinators from manually chasing missing receipts
- Given I am on the activity type form screen, When I toggle 'Involves Expenses', Then an additional option appears to set whether a receipt is required
- Given an activity type has 'Involves Expenses' set to false, When a peer mentor selects that type, Then the expense registration step is skipped in the wizard
- Given an activity type has 'Involves Expenses' set to true, When a peer mentor selects that type, Then the expense registration step is included in the wizard
- +3 more
As a As a Organization Administrator
I want to explicitly map each activity type to the correct Bufdir reporting category during configuration so that automated Bufdir exports are generated without manual reclassification
So that our organization's annual Bufdir submission is accurate and can be generated with a single action, saving significant administrative time and reducing the risk of misclassification penalties
- Given I am on the activity type form screen, When I view the Bufdir category field, Then I see a dropdown with the current valid Bufdir categories
- Given I select a Bufdir category, When I save the activity type, Then the mapping is persisted and associated with all future activities of this type
- Given activities have been registered using this type, When the Bufdir export service runs for a reporting period, Then activities are automatically grouped under the correct Bufdir category based on their type mapping
- +3 more
As a As a Coordinator
I want peer mentors to see a clear, filtered list of activity types specific to our organization when starting an activity registration
So that they can quickly select the correct type in the first step of the registration wizard, with pre-filled defaults that minimize the number of additional inputs required
- Given a peer mentor opens the activity registration flow, When the activity type selection screen loads, Then only active activity types for their organization are displayed
- Given the selection screen is displayed, When it loads, Then it uses the cache provider so the list appears without network latency on repeat visits
- Given I select an activity type with a configured default duration, When the duration step loads, Then the default duration is pre-filled
- +3 more
As a As a Organization Administrator
I want peer mentors to see a clear, filtered list of activity types specific to our organization when starting an activity registration
So that they can quickly select the correct type in the first step of the registration wizard, with pre-filled defaults that minimize the number of additional inputs required
- Given a peer mentor opens the activity registration flow, When the activity type selection screen loads, Then only active activity types for their organization are displayed
- Given the selection screen is displayed, When it loads, Then it uses the cache provider so the list appears without network latency on repeat visits
- Given I select an activity type with a configured default duration, When the duration step loads, Then the default duration is pre-filled
- +3 more