high complexity extracted Coordinator & Admin Tools Confidence: 100%
13
Components
198
Shared
16
User Stories
Yes
Analyzed

Description

Automates the generation of the activity reports required by Bufdir (the Norwegian Directorate for Children, Youth and Family Affairs) as a condition of receiving government grants. The goal articulated in all three workshops is a single button press that produces a complete, correctly formatted export covering the required period. Norse Digital Products will engage directly with Bufdir to agree on a simplified digital reporting format that works for all partner organisations. Until a live API exists, the feature must support structured data export (e.g. CSV or Excel) that maps the app's data model to Bufdir's current template. Document attachments (invitations, screenshots) required by NHF for Bufdir verification must be bundled or linked in the export.

Analysis

Business Value

Eliminates the single most time-consuming administrative task across all four organisations. Directly de-risks grant funding by ensuring accurate, timely reporting. A key selling point for organisational adoption of the app.

Implementation Notes

Phase 3 feature. Build an export-service layer that queries activity records filtered by org, date range, and activity type. Map to Bufdir's column schema (configurable per org if formats differ). PDF and Excel output. Future: REST integration with Bufdir if they adopt an API. Audit log of all exports (who, when, what period). Requires Bufdir dialogue initiated by Norse Digital Products.

Components (211)

User Interface (3)

Service Layer (6)

Data Layer (2)

Infrastructure (2)

Shared Components

These components are reused across multiple features

User Interface (59)

ui Role Switch Widget medium Shared ui Role-Aware Bottom Navigation medium Shared ui Activity Type Selection Screen low Shared ui Speech-to-Text Field Overlay medium Shared ui Receipt Capture Widget medium Shared ui Peer Mentor Single Selector low Shared ui Proxy Audit Badge Widget low Shared ui Export Period Picker low Shared ui Contact Card Widget low Shared ui Contact Search Bar low Shared ui Peer Mentor Card Widget low Shared ui Activity History List low Shared ui Multi-Chapter Affiliation Chip Widget medium Shared ui Certification Status Badge low Shared ui Duplicate Activity Warning Dialog medium Shared ui Mentor Multi-Select Widget medium Shared ui Map Filter Panel medium Shared ui Claim Status Badge low Shared ui Export Date Range Picker low Shared ui Custom Date Range Picker low Shared ui Duplicate Activity Warning Dialog low Shared ui Proxy Activity Form medium Shared ui Proxy Peer Mentor Selector medium Shared ui Expected Return Date Picker low Shared ui Pause Activation Screen low Shared ui Pause Status Indicator low Shared ui Admin KPI Stat Widget low Shared ui Organisation Hierarchy Navigator high Shared ui Bufdir Period Selector Widget low Shared ui Export History List medium Shared ui Activity Type Donut Chart medium Shared ui Monthly Activity Bar Chart medium Shared ui Statistics Period Filter Bar low Shared ui Statistics Summary Cards low Shared ui Notification Badge Widget low Shared ui Certificate Expiry Status Indicator low Shared ui Animated Stat Card Widget medium Shared ui In-App Notification Banner low Shared ui Accessible Modal Sheet Widget high Shared ui Live Region Announcer medium Shared ui Semantics Wrapper Widget medium Shared ui Sensitive Field Warning Dialog high Shared ui Confirm Before Submit Screen medium Shared ui Inline Contextual Help Widget low Shared ui Labelled Navigation Bar low Shared ui Plain Language Error Display low Shared ui Single-Action Screen Layout medium Shared ui Wizard Progress Indicator low Shared ui Accessible Text Style System medium Shared ui Accessible Touch Target Wrapper low Shared ui Contrast-Safe Color Palette Widget medium Shared ui Accessible Bottom Navigation Bar medium Shared ui Modal Close Button low Shared ui Persistent Back Button low Shared ui Vertical Scroll Container low Shared ui Organization Card Widget low Shared ui Terminology-Aware Text Widget low Shared ui FeatureGate Widget low Shared ui Chapter Switcher medium Shared

Service Layer (52)

service Authentication Service medium Shared service Authentication Session Manager medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Permission Checker Service medium Shared service Role State Manager medium Shared service No-Access Route Guard low Shared service Activity Type Metadata Resolver low Shared service Chapter Scope Resolver medium Shared service Organisation Hierarchy Resolver medium Shared service Coordinator Notification Service medium Shared service Duplicate Activity Detection Service high Shared service Mentor Filter Service low Shared service Receipt Threshold Validator low Shared service Approval Status Notification Service medium Shared service Threshold Evaluation Service medium Shared service Declaration Encryption Service high Shared service Organization Feature Flag Service low Shared service Participant Deduplication Service high Shared service Reporting Period Service medium Shared service Activity Attribution Service low Shared service Proxy Duplicate Detection Service medium Shared service Pause Management Service medium Shared service Pause Notification Service medium Shared service Admin Export Service medium Shared service Admin Row-Level Security Guard high Shared service Organisation Hierarchy Service high Shared service User Management Service high Shared service Role Access Validator low Shared service Peer Mentor Stats Aggregator medium Shared service Push Notification Dispatcher medium Shared service Notification Preference Service low Shared service Scenario Deep-Link Router medium Shared service Scenario Notification Content Builder medium Shared service Badge Criteria Integration medium Shared service Activity Summary Aggregator low Shared service Focus Management Service medium Shared service Screen Reader Detection Service medium Shared service Sensitive Field Privacy Guard high Shared service Plain Language Content Service medium Shared service Wizard State Manager medium Shared service Tab State Manager medium Shared service Organization Route Guard medium Shared service Tenant Context Service high Shared service Label Key Resolver Service low Shared service Organization Labels Notifier medium Shared service FeatureFlagProvider (Riverpod) medium Shared service Access Scope Service high Shared service Hierarchy Aggregation Service high Shared service Hierarchy Service high Shared service Unit Assignment Service medium Shared

Data Layer (33)

Infrastructure (54)

infrastructure Keyboard-Aware Layout Utility low Shared infrastructure Supabase Auth Client low Shared infrastructure Deep Link / OAuth Redirect Handler medium Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase Session Manager medium Shared infrastructure URL Launcher Utility low Shared infrastructure Local Storage Adapter low Shared infrastructure Supabase Activity Client low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client low Shared infrastructure Organisation Field Config Loader medium Shared infrastructure Speech-to-Text Adapter medium Shared infrastructure File Download Handler low Shared infrastructure Duplicate Reviewed Flag Middleware low Shared infrastructure Contact RLS Query Builder low Shared infrastructure Contact Form Validator low Shared infrastructure Design Token Theme low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client Provider low Shared infrastructure Search Debounce Utility low Shared infrastructure Expense Type Analytics Tracker low Shared infrastructure Receipt Image Picker Integration low Shared infrastructure CSV / JSON File Generator medium Shared infrastructure Coordinator Role Guard low Shared infrastructure Nightly Job Scheduler medium Shared infrastructure Supabase RLS Policy Configuration high Shared infrastructure Export File Storage Adapter low Shared infrastructure Supabase Storage Adapter low Shared infrastructure Peer Mentor Pause Management Service medium Shared infrastructure Push Notification Service medium Shared infrastructure fl_chart Adapter medium Shared infrastructure Push Notification Service low Shared infrastructure FCM Push Notification Sender medium Shared infrastructure FCM Notification Dispatcher medium Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Supabase Realtime Subscription Service medium Shared infrastructure Organisation Data Isolation Guard low Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Deep Link Handler medium Shared infrastructure QR Code Generator low Shared infrastructure Share Sheet Bridge low Shared infrastructure Semantics Service Facade medium Shared infrastructure Accessibility Design Token Enforcer medium Shared infrastructure Accessible Theme Builder medium Shared infrastructure Navigation Route Configuration medium Shared infrastructure Accessibility Live Region Announcer low Shared infrastructure Feature Flag Provider low Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase RLS Tenant Scope Configurator medium Shared infrastructure Label Key Registry low Shared infrastructure Terminology Riverpod Providers low Shared infrastructure WCAG Semantics Label Resolver low Shared infrastructure Feature Flag Key Constants low Shared infrastructure RLS Policy Manager high Shared

User Stories (16)

Align Statistics with Bufdir Category Requirements
medium 3 pts

As a As a Coordinator

I want the statistics view to validate that recorded activities align with Bufdir's reporting categories, and to be warned if any activities are uncategorized or in categories Bufdir does not recognize

So that I can proactively fix data quality issues before the reporting period ends, rather than discovering problems only at export time

Acceptance Criteria
  • Given I view the coordinator statistics screen, when there are activities with unmapped Bufdir categories, then a Bufdir alignment warning badge is shown on the stats screen
  • Given I tap the alignment warning, when the detail view loads, then I see a list of activity types that are not mapped to Bufdir categories, with a count of affected records
  • Given all activity types are mapped, when I view the stats screen, then no alignment warning is shown and a 'Bufdir-ready' indicator is visible
  • +2 more
View Full Story →
Align Statistics with Bufdir Category Requirements
medium 3 pts

As a As a Organization Administrator

I want the statistics view to validate that recorded activities align with Bufdir's reporting categories, and to be warned if any activities are uncategorized or in categories Bufdir does not recognize

So that I can proactively fix data quality issues before the reporting period ends, rather than discovering problems only at export time

Acceptance Criteria
  • Given I view the coordinator statistics screen, when there are activities with unmapped Bufdir categories, then a Bufdir alignment warning badge is shown on the stats screen
  • Given I tap the alignment warning, when the detail view loads, then I see a list of activity types that are not mapped to Bufdir categories, with a count of affected records
  • Given all activity types are mapped, when I view the stats screen, then no alignment warning is shown and a 'Bufdir-ready' indicator is visible
  • +2 more
View Full Story →
View Export History and Re-export Previous Reports
high 5 pts

As a As a Coordinator

I want to view a history of all previously generated Bufdir reports with their period, format, record count, and submission status, and to re-export any previous report if needed

So that I can maintain a clear audit trail of all Bufdir submissions and quickly regenerate a report if it needs to be resubmitted

Acceptance Criteria
  • Given I navigate to the report history screen, when it loads, then I see a chronological list of all Bufdir exports with period, format, record count, and status
  • Given I view the history screen, when summary metrics are loaded, then a metrics widget shows total reports generated, total activities reported, and total unique participants
  • Given I tap a history list item, when the detail view opens, then I can see full export metadata and a download button to retrieve the stored file
  • +3 more
View Full Story →
Submit Report Directly to Bufdir via API
high 8 pts

As a As a Coordinator

I want to submit the validated report directly to Bufdir's API without leaving the app, and receive a confirmation reference number

So that I can complete the entire Bufdir reporting cycle in one place without manual file uploads to an external portal

Acceptance Criteria
  • Given my organization has a Bufdir API integration configured, when I reach the export options, then a 'Submit to Bufdir' option is available in addition to file download
  • Given I choose API submission, when I confirm, then the system formats the payload using the Bufdir schema config and submits via the API client
  • Given the submission succeeds, when the response is received, then a confirmation screen shows the Bufdir reference number and submission timestamp
  • +3 more
View Full Story →
Scope Bufdir Report Across Multi-Chapter Organization
high 8 pts

As a As a Coordinator

I want to select the organizational scope for a Bufdir report — whether for a single chapter, a region, or the entire national organization — so that the report reflects the correct hierarchical unit I am responsible for reporting

So that I can generate accurate reports that match the exact organizational scope that Bufdir expects from my role, without mixing data from other units

Acceptance Criteria
  • Given I am a regional coordinator, when I open the Bufdir export flow, then the scope selector shows my region and all chapters within it as selectable scopes
  • Given I select a specific scope, when the aggregation runs, then only activities attributed to units within the selected scope are included in the report
  • Given the same activity could theoretically appear in multiple reports, when I run an export for scope A, then activities already exported in a narrower scope are flagged to prevent double-counting
  • +3 more
View Full Story →
View Export History and Re-export Previous Reports
high 5 pts

As a As a Organization Administrator

I want to view a history of all previously generated Bufdir reports with their period, format, record count, and submission status, and to re-export any previous report if needed

So that I can maintain a clear audit trail of all Bufdir submissions and quickly regenerate a report if it needs to be resubmitted

Acceptance Criteria
  • Given I navigate to the report history screen, when it loads, then I see a chronological list of all Bufdir exports with period, format, record count, and status
  • Given I view the history screen, when summary metrics are loaded, then a metrics widget shows total reports generated, total activities reported, and total unique participants
  • Given I tap a history list item, when the detail view opens, then I can see full export metadata and a download button to retrieve the stored file
  • +3 more
View Full Story →
Submit Report Directly to Bufdir via API
high 8 pts

As a As a Organization Administrator

I want to submit the validated report directly to Bufdir's API without leaving the app, and receive a confirmation reference number

So that I can complete the entire Bufdir reporting cycle in one place without manual file uploads to an external portal

Acceptance Criteria
  • Given my organization has a Bufdir API integration configured, when I reach the export options, then a 'Submit to Bufdir' option is available in addition to file download
  • Given I choose API submission, when I confirm, then the system formats the payload using the Bufdir schema config and submits via the API client
  • Given the submission succeeds, when the response is received, then a confirmation screen shows the Bufdir reference number and submission timestamp
  • +3 more
View Full Story →
Scope Bufdir Report Across Multi-Chapter Organization
high 8 pts

As a As a Organization Administrator

I want to select the organizational scope for a Bufdir report — whether for a single chapter, a region, or the entire national organization — so that the report reflects the correct hierarchical unit I am responsible for reporting

So that I can generate accurate reports that match the exact organizational scope that Bufdir expects from my role, without mixing data from other units

Acceptance Criteria
  • Given I am a regional coordinator, when I open the Bufdir export flow, then the scope selector shows my region and all chapters within it as selectable scopes
  • Given I select a specific scope, when the aggregation runs, then only activities attributed to units within the selected scope are included in the report
  • Given the same activity could theoretically appear in multiple reports, when I run an export for scope A, then activities already exported in a narrower scope are flagged to prevent double-counting
  • +3 more
View Full Story →
Select Reporting Period for Bufdir Export
critical 5 pts

As a As a Coordinator

I want to select a reporting period (using presets like quarterly or annually, or a custom date range) and see the record count before committing to an export

So that I can ensure I am exporting the correct time window and have sufficient data before generating the official Bufdir report

Acceptance Criteria
  • Given I am on the Bufdir export flow, when I open the period selection screen, then I see a list of preset periods (current quarter, last quarter, current year, last year, custom range)
  • Given I select a preset period, when the selection is confirmed, then a record count banner shows the number of activities within that period
  • Given I choose a custom date range, when I set start and end dates, then the picker validates the range and shows a record count for those dates
  • +2 more
View Full Story →
Preview Bufdir Report Before Submission
critical 8 pts

As a As a Coordinator

I want to preview the fully structured Bufdir report — including all required fields, section breakdowns, and a validation summary — before generating the final export file

So that I can catch data gaps or validation errors and fix them before submitting an incorrect report to Bufdir

Acceptance Criteria
  • Given I have selected a reporting period, when I proceed to the preview screen, then I see all Bufdir-required sections rendered with aggregated data from the selected period
  • Given the report has missing required fields, when the preview loads, then a validation summary banner lists each validation failure with a clear description
  • Given the report passes all validations, when I view the validation banner, then it shows a green 'Report is ready' status
  • +3 more
View Full Story →
Generate and Download Bufdir Export File
critical 8 pts

As a As a Coordinator

I want to select an export format (Excel, CSV, or PDF), confirm the export, and download the generated file directly to my device

So that I can submit the report to Bufdir in the exact format they require, or share it internally for review

Acceptance Criteria
  • Given I am on the export trigger screen, when I view format options, then I see Excel, CSV, and PDF as selectable formats
  • Given I select a format, when I tap Generate Report, then an export confirmation dialog shows the scope, period, record count, and format before I confirm
  • Given I confirm the export, when the orchestrator processes the request, then an export progress indicator is displayed and the UI remains responsive
  • +4 more
View Full Story →
Aggregate Activity Data for Bufdir Report
critical 13 pts

As a As a Coordinator

I want the system to automatically aggregate all peer mentor activities within the selected period — deduplicated, categorized to Bufdir's taxonomy, and scoped to my organization's hierarchy — so I do not have to compile data manually

So that I can generate an accurate Bufdir report in seconds rather than spending hours consolidating spreadsheets

Acceptance Criteria
  • Given I initiate report generation, when the aggregation starts, then an aggregation summary widget and progress indicator are displayed
  • Given activities span multiple chapters under my organization, when aggregation completes, then the report scope is correctly limited to my hierarchy and cross-chapter activities are attributed once
  • Given the same participant appears in multiple activities, when deduplication runs, then the participant is counted only once in the participant total
  • +3 more
View Full Story →
Select Reporting Period for Bufdir Export
critical 5 pts

As a As a Organization Administrator

I want to select a reporting period (using presets like quarterly or annually, or a custom date range) and see the record count before committing to an export

So that I can ensure I am exporting the correct time window and have sufficient data before generating the official Bufdir report

Acceptance Criteria
  • Given I am on the Bufdir export flow, when I open the period selection screen, then I see a list of preset periods (current quarter, last quarter, current year, last year, custom range)
  • Given I select a preset period, when the selection is confirmed, then a record count banner shows the number of activities within that period
  • Given I choose a custom date range, when I set start and end dates, then the picker validates the range and shows a record count for those dates
  • +2 more
View Full Story →
Preview Bufdir Report Before Submission
critical 8 pts

As a As a Organization Administrator

I want to preview the fully structured Bufdir report — including all required fields, section breakdowns, and a validation summary — before generating the final export file

So that I can catch data gaps or validation errors and fix them before submitting an incorrect report to Bufdir

Acceptance Criteria
  • Given I have selected a reporting period, when I proceed to the preview screen, then I see all Bufdir-required sections rendered with aggregated data from the selected period
  • Given the report has missing required fields, when the preview loads, then a validation summary banner lists each validation failure with a clear description
  • Given the report passes all validations, when I view the validation banner, then it shows a green 'Report is ready' status
  • +3 more
View Full Story →
Generate and Download Bufdir Export File
critical 8 pts

As a As a Organization Administrator

I want to select an export format (Excel, CSV, or PDF), confirm the export, and download the generated file directly to my device

So that I can submit the report to Bufdir in the exact format they require, or share it internally for review

Acceptance Criteria
  • Given I am on the export trigger screen, when I view format options, then I see Excel, CSV, and PDF as selectable formats
  • Given I select a format, when I tap Generate Report, then an export confirmation dialog shows the scope, period, record count, and format before I confirm
  • Given I confirm the export, when the orchestrator processes the request, then an export progress indicator is displayed and the UI remains responsive
  • +4 more
View Full Story →
Aggregate Activity Data for Bufdir Report
critical 13 pts

As a As a Organization Administrator

I want the system to automatically aggregate all peer mentor activities within the selected period — deduplicated, categorized to Bufdir's taxonomy, and scoped to my organization's hierarchy — so I do not have to compile data manually

So that I can generate an accurate Bufdir report in seconds rather than spending hours consolidating spreadsheets

Acceptance Criteria
  • Given I initiate report generation, when the aggregation starts, then an aggregation summary widget and progress indicator are displayed
  • Given activities span multiple chapters under my organization, when aggregation completes, then the report scope is correctly limited to my hierarchy and cross-chapter activities are attributed once
  • Given the same participant appears in multiple activities, when deduplication runs, then the participant is counted only once in the participant total
  • +3 more
View Full Story →