Organization Administrator
Organization administrators are senior staff members responsible for overseeing the entire peer mentor network within their member organization (e.g., NHF, Blindeforbundet, HLF, Barnekreftforeningen). They have the highest level of access within the mobile app, with visibility across all coordinators and peer mentors in their organization's hierarchy. They use the admin portal to monitor programme health, configure organization-specific settings such as activity types and feature flags, and generate top-level Bufdir reports. They may also configure integrations with external systems such as Xledger and Dynamics.
Story Priority Distribution
User Stories by Feature
Organization Selection Screen
View FeatureEach organization participating in the platform uses different terminology. For example, NHF may call the peer helper ro...
First-time users who have just authenticated via BankID or Vipps are entering the app for the first time. The onboarding...
Peer mentors who are members of multiple organizations need to switch between them without going through the full authen...
Returning users should not be required to re-select their organization every session. The tenant-session-store (674-tena...
When a peer mentor opens the app and has completed authentication, they are presented with the Organization Selection Sc...
Blindeforbundet's users include visually impaired peer helpers for whom screen reader support is not a nice-to-have but...
Email and Password Login
View FeatureClient-side email format validation prevents unnecessary network requests and gives users faster, more actionable feedba...
Many peer mentors are not highly technical users and may mistype their password while it is hidden. A password visibilit...
When authentication fails — whether due to wrong credentials, network issues, or a locked account — the peer mentor must...
After a successful email/password login, the app should detect whether the device supports biometric authentication and...
On mobile devices — particularly smaller form factors — the software keyboard can occlude input fields and action button...
Peer mentors need a reliable, straightforward email and password login flow as the foundational authentication method. T...
Session persistence is essential for a field-use app. Peer mentors register activities in brief moments between interact...
The login screen must be fully navigable and operable using iOS VoiceOver and Android TalkBack. Every interactive elemen...
BankID and Vipps Login
View FeatureWhen Vipps Login returns a personnummer in the authentication response, the app displays a confirmation step before stor...
When a peer mentor returns to the app within an active session window, the session resume manager checks whether the exi...
The peer mentor can initiate a logout from the settings screen. Upon logout, the auth session manager invalidates the Su...
When a peer mentor opens the app for the first time or after being logged out, they are presented with an authentication...
The BankID authentication screen launches the native BankID flow, which may be BankID on mobile (app-based) or BankID wi...
The Vipps authentication screen initiates the Vipps Login OAuth flow. The app calls the Vipps API client to get an autho...
After successfully authenticating via BankID or Vipps for the first time, the app presents an option to enable biometric...
The BankID and Vipps login screens must meet WCAG 2.2 AA accessibility requirements, which is explicitly required by all...
Biometric Session Authentication
View FeatureNot all app actions carry the same sensitivity. Registering a 30-minute activity is low-risk; accessing an encrypted con...
Peer mentors may conduct visits in rural areas, care homes, or other locations with poor connectivity. After successful...
The peer mentor must have agency over whether biometric authentication is active on their device. During onboarding afte...
Not all users will have devices with biometric hardware, and some users may have biometric enrollment disabled at the OS...
After completing initial identity verification via BankID or Vipps, the peer mentor should be prompted to enable biometr...
After successful authentication, the Supabase session token and related credentials must be stored in the device's secur...
Role-Based Access Control
View FeatureBefore executing high-impact coordinator actions—bulk activity registration, initiating a peer mentor pause, or approvin...
Some users hold both a coordinator and a peer mentor role within an organization. The role switch widget—accessible from...
Coordinators in large organizations like NHF (with 12 national associations, 9 regions, and 1,400 local chapters) may ad...
When a coordinator authenticates and the system resolves their role, they are directed to a role-specific home screen th...
Every protected route in the application is guarded by a role route guard that checks the current resolved role against...
The role-aware bottom navigation bar renders a tab set dynamically determined by the user's active role. For coordinator...
No-Access Screen for Restricted Roles
View FeatureWhen the no-access config repository includes an external URL for a blocked route (such as a mailto link, a coordinator...
The no-access screen widget must render dynamic content sourced from the no-access config repository, which stores per-r...
Some users in the system hold multiple roles simultaneously (for example, a user who is both a peer mentor and a coordin...
When a peer mentor navigates to a route that requires coordinator or admin privileges, the app must intercept the naviga...
The no-access screen must always present at least one safe navigation action that takes the user back to a route they ar...
The no-access screen must meet all WCAG 2.2 AA accessibility requirements as a baseline. This includes: a minimum contra...
Activity Type Configuration
View FeatureWhen an activity type becomes obsolete, deleting it would break historical activity records. Instead, coordinators archi...
The coordinator needs a dedicated admin screen that lists all activity types defined for their organization. Each activi...
When a coordinator needs a new activity type, they open the activity type form screen and fill in all relevant metadata....
Coordinators must be able to update activity types as organizational needs evolve—terminology changes, Bufdir reporting...
When defining or editing an activity type, the coordinator can toggle whether this type typically involves expense regis...
Each activity type must be assigned a Bufdir category (e.g., individual guidance, group activity, telephone support, dig...
The activity type selection screen is the first step in the activity registration bottom sheet. It must present only the...
Activity Statistics Dashboard
View FeatureA donut or bar chart should visualize the distribution of activity types the peer mentor has logged within the selected...
A monthly bar chart should be displayed on the statistics dashboard, showing the number of activities logged per calenda...
The statistics dashboard must cache the most recently loaded statistics data locally on the device so that the dashboard...
The statistics dashboard should include a view or section that maps the peer mentor's logged activities to the Bufdir re...
Peer mentors need an at-a-glance overview of their key activity metrics displayed as summary stat cards on the statistic...
The statistics dashboard must provide a time window selector that allows peer mentors to choose preset periods (current...
The personal stats view is a role-specific view of the statistics dashboard that shows only the authenticated peer mento...
The entire statistics dashboard must be fully accessible to screen readers including VoiceOver on iOS and TalkBack on An...
Bufdir Report Export
View FeatureFor large organizations with thousands of activity records, Bufdir export generation — including data aggregation, parti...
NHF identified document attachments to activities as an important feature for Bufdir auditability — specifically invitat...
Before committing to a Bufdir export, coordinators need confidence that the generated report is correct and complete. Th...
Bufdir's submission requirements and the internal archiving needs of each organization differ. Some coordinators submit...
Grant audits often require organizations to produce historical reports. Coordinators also need to compare submissions ac...
Organizations like NHF have complex hierarchies: 12 national associations, 9 regions, and up to 1,400 local chapters. A...
Coordinators spend significant time manually compiling activity data from various sources to meet Bufdir grant reporting...
Bufdir reporting is tied to specific funding periods — typically semi-annual or annual cycles. Coordinators need a perio...
Duplicate Activity Detection
View FeatureEvery time the duplicate detection system triggers a warning, the event should be logged with: the two record IDs involv...
Different chapters have different activity patterns. A chapter running daily drop-in sessions may legitimately register...
When a coordinator submits an activity registration — either for themselves or on behalf of a peer mentor — the system s...
Coordinators need a structured interface to manage the backlog of flagged duplicate pairs. The deduplication queue scree...
Peer mentors in NHF may belong to up to five chapters simultaneously. When a peer mentor registered under Chapter A logs...
Coordinators frequently use proxy registration to log activities for peer mentors who lack digital access, and bulk regi...
Contact List Management
View FeatureNHF supports contacts belonging to up to 5 local chapters simultaneously. The chapter affiliations panel must display al...
Blindeforbundet explicitly requested a geographic map view for matching peer mentors to contacts based on location, part...
The contact search feature must provide a debounced search bar at the top of the contact list that queries both the onli...
The edit contact screen must provide a form-based interface for updating contact information with real-time field valida...
The peer mentor detail screen is a specialized view that extends the general contact detail with peer-mentor-specific se...
Both NHF and HLF require a pause function that allows peer mentors to be temporarily deactivated without losing their pr...
Coordinators need a comprehensive contact list screen that displays both regular contacts and peer mentors in a structur...
The contact detail screen must present a complete profile view including personal information, multi-chapter affiliation...
Contact Detail & Edit Screen
View FeatureWithin the contact detail and edit screens, the coordinator can see and manage chapter affiliations. Multi-chapter affil...
Certain contact fields contain sensitive personal data that is stored encrypted at rest. On the contact detail screen, t...
The activity history list component is embedded in the contact detail screen and loads the peer mentor's registered acti...
When the contact record belongs to a user with the peer mentor role, the contact detail screen surfaces a navigation aff...
When a coordinator taps a contact card from the contact list, the contact detail screen loads a complete profile view. T...
From the contact detail screen, the coordinator taps an edit button to navigate to the edit contact screen. All editable...
All interactive elements on the contact detail and edit screens must conform to WCAG 2.2 AA accessibility standards, whi...
Peer Mentor Profile & Status Screen
View FeatureThe mentor-activity-summary-panel on the profile screen should display aggregated statistics: total activities in the la...
NHF has a particularly complex organizational structure (12 national associations, 9 regions, 1,400 local chapters) and...
The peer mentor profile screen must be easily accessible from the main app navigation. Based on the current architecture...
HLF specifically requires that when a peer mentor's certification expires, they are automatically removed from local cha...
The pause feature (SHOULD HAVE, Phase 2) allows peer mentors to temporarily deactivate themselves without leaving the or...
The peer mentor profile screen should include an assigned-contacts-list section that shows all contacts currently assign...
HLF requires that when a peer mentor's certification expires, they are automatically removed from the chapter's public w...
When a peer mentor navigates to their profile screen, they should see a consolidated view of all relevant information: t...
Multi-Chapter Membership Handling
View FeatureThe statistics screens for both peer mentors and coordinators must apply chapter-scope filtering when loading data for m...
Contact cards in the contact list and the contact detail screen should display chapter affiliation chips for peer mentor...
The chapter assignment editor must support a soft-delete (end-date) operation for affiliations. Setting an affiliation t...
A contact detail screen must display all chapters a peer mentor is affiliated with. NHF members can belong to up to 5 lo...
When a coordinator registers an activity for a peer mentor who belongs to multiple chapters, the system must query all c...
When a peer mentor is affiliated with more than one chapter, the activity registration wizard must prompt the coordinato...
The chapter assignment editor must support additive operations. Adding a peer mentor to a new chapter is a non-destructi...
Contact & Notes Search
View FeatureCoordinators frequently access the same small set of active contacts and peer mentors during periods of intensive coordi...
Contact records accumulate notes and post-session report summaries over time. When a coordinator needs to find, for exam...
In organizations like NHF with up to 1,400 local chapters, or when a coordinator oversees multiple chapters, a simple na...
Coordinators and peer mentors often operate in environments with unreliable connectivity — home visits, rural areas, or...
Coordinators manage large rosters of contacts and peer mentors across one or more chapters. Finding a specific person in...
All three organizations serve users with diverse accessibility needs — Blindeforbundet's user base in particular require...
Geographic Peer Mentor Map View
View FeatureNot all coordinator tasks benefit from a map view. When reviewing certification statuses across the chapter, a sortable...
Norwegian coordinators frequently work in rural and remote areas where network connectivity is unreliable. The map provi...
Coordinators managing large counties or regions need a geographic overview of where peer mentors are located relative to...
Having all peer mentors on the map is useful, but coordinators need to find the right mentor for a specific contact need...
The mentor-info-popup is a lightweight overlay rendered directly on the map when a marker is tapped. It must load instan...
The map's value depends on how many peer mentors have consented to share their approximate location. Coordinators need v...
Threshold-Based Expense Approval Workflow
View FeatureEach organization may have different threshold rules — for example, HLF uses automatic approval for claims under 50 km w...
While automatic approval reduces coordinator workload, coordinators retain accountability for all reimbursements process...
For organizations with high claim volumes, processing claims one by one is impractical. A bulk approval bar appears when...
Every state transition in an expense claim — submitted, under review, auto-approved, manually approved, rejected, export...
When a peer mentor submits an expense claim that exceeds the automatic approval threshold, the system must notify all co...
HLF requires receipts for any expense above 100 NOK. The system should enforce this rule at submission time so that inco...
Coordinators need a clear, actionable review queue that shows only claims that have exceeded the automatic approval thre...
When a coordinator taps a claim in the queue, they are presented with the full claim detail: expense type breakdown, mil...
Accounting System Export and Integration
View FeatureNot all organizations have immediate API access to their accounting systems, and some may prefer manual file import work...
Some expense types (e.g., internal recognition awards, non-cash benefits) should never flow into the accounting system e...
The export history panel shows a chronological list of all export runs for the organization, with metadata including exp...
Different organizations use different account codes (e.g., Xledger account 6800 for mileage vs. Dynamics cost center cod...
The integration health monitor continuously checks reachability and authentication status of the connected accounting sy...
Coordinators need a reliable, one-click export flow that collects all approved claims within a chosen period and pushes...
Organizations connect to different accounting backends (Xledger for Blindeforbundet, Dynamics portal for HLF). Coordinat...
The double-export guard checks the export-run-repository before any export is executed to determine whether any claims i...
Bufdir Data Aggregation
View FeatureBufdir grants often require documentation of geographic reach. The geographic distribution service computes how activiti...
Coordinators must retain records of all Bufdir submissions for audit purposes and to respond to Bufdir queries about his...
Organisations like NHF have members affiliated with up to five local chapters, meaning a single peer-mentoring recipient...
After aggregation completes, the coordinator should be able to view the report in Bufdir's expected structure — section...
Bufdir applies specific validation rules to submitted data — for example, participant counts must be positive integers,...
Coordinators need to define the time window for which activity data will be aggregated before generating Bufdir reports....
Once a period is confirmed, the coordinator initiates aggregation. The aggregation service fetches all activity records...
Bufdir requires activity data to be submitted using its own category schema, which differs from the internal activity ty...
The platform serves multiple organisations (NHF, Blindeforbundet, HLF, Barnekreftforeningen) on shared infrastructure. D...
Once the coordinator confirms the preview is correct, they initiate the export. The system generates the file in the sel...
Bufdir Report Period Selection
View FeatureMany organizations submit Bufdir reports on a fixed schedule — quarterly or annually — and always use the same period st...
A common mistake in manual reporting workflows is accidentally leaving an unreported gap between two consecutive submiss...
Some organizations have non-standard grant cycles or may need to produce supplementary reports covering irregular window...
Before committing to a reporting period, coordinators need confidence that the data scope is correct. The record count b...
Bufdir imposes structural requirements on reporting periods — for instance, reports must cover complete calendar months...
Coordinators need to generate Bufdir reports regularly, often for standard time windows aligned with grant cycles and No...
Bufdir Report Preview
View FeatureThe bufdir-period-diff-view component renders a comparison between the current period's aggregated values and the equiva...
The bufdir-report-structure-mapper translates internal activity type IDs into the official Bufdir category taxonomy. The...
The preview screen acts as a confirmation step in the Bufdir export workflow. Upon completing their review, coordinators...
Coordinators need a full-fidelity preview of the Bufdir report that mirrors the official submission format. The preview...
The bufdir-validation-summary-banner aggregates all field-level validation results produced by the bufdir-field-validati...
The bufdir-accessibility-utils component provides semantic labeling, live region announcements, and focus management for...
The bufdir-preview-service queries the bufdir-aggregation-service and bufdir-metrics-repository to retrieve pre-computed...
Bufdir Report History & Audit Log
View FeatureFrom the report history screen, coordinators must be able to trigger a re-export of any past report. The system should r...
From the Bufdir preview or history screen, coordinators should be able to trigger a period diff view that displays key m...
The report history screen must provide filter controls allowing coordinators to narrow the list by calendar year (dropdo...
Coordinators need a dedicated history screen that lists all previously submitted Bufdir reports, including the reporting...
Each report in the history list should have an expandable or linked detail view that displays the summary metrics widget...
Each report history entry must expose an audit trail panel listing timestamped events: report generation initiated, vali...
All file downloads from the report history screen must be served through signed, time-limited URLs generated by the serv...
Organisation Admin Portal
View FeatureThe activity log viewer presents a searchable, filterable list of audit events scoped to the admin's organisation. Event...
The integration configuration dashboard lists all available integration types for the organisation (based on feature fla...
The admin notification dispatcher allows org admins to compose a notification message, select a target audience (all org...
The hierarchy admin portal presents the full organisational tree using an interactive tree view widget. Admins can add,...
Each organisation uses different terms for the same roles and concepts. The terminology admin preview screen allows admi...
The feature flag admin screen lists all available feature flags with their current state (enabled/disabled) for the admi...
The admin export panel provides scoped export controls for multiple data types: all activity registrations for a date ra...
The certification status panel in the admin portal aggregates certification records across all peer mentors in the admin...
The admin dashboard provides a real-time overview of the organisation's key performance indicators: active peer mentors,...
The user account management screen lists all users in the admin's organisation scope with their current role (org_admin,...
Bufdir Reporting & Export
View FeatureBufdir has a specific taxonomy of activity types that they accept in reports. If peer mentors register activities using...
For organizations that have API access configured with Bufdir, the export flow can include a direct API submission step....
The report history screen lists all Bufdir exports generated by coordinators within the organization, ordered by date. E...
Organizations like NHF have complex hierarchies (12 national associations, 9 regions, 1,400 local chapters). Bufdir repo...
Coordinators must submit periodic reports to Bufdir documenting peer mentor activity within their organization. Before g...
After selecting a reporting period, the coordinator is shown a structured preview of the Bufdir report. The preview rend...
The core of the Bufdir reporting feature is the automated data aggregation pipeline. When a coordinator initiates a repo...
After previewing and validating the report, the coordinator selects the desired output format. The export trigger screen...
Document Attachments for Activities
View FeatureMistakes happen during upload — the wrong screenshot is selected, a blurry photo is submitted, or a file is attached to...
Complex activities — such as group workshops or public events — often require multiple forms of evidence: a posted invit...
Peer mentors frequently operate in community centers, private homes, or outdoor venues where connectivity is unreliable....
Peer mentors often facilitate group activities with supporting materials — printed invitations, Facebook event screensho...
After an activity has been submitted, the peer mentor needs to confirm which documents are attached — both for their own...
Several member organizations — particularly Blindeforbundet and NHF — serve peer mentors with visual impairments or cogn...
Peer Mentor Certification Management
View FeatureWhen a peer mentor's certification is within the warning threshold, the app should surface an in-context course enrollme...
When a peer mentor's certification expires or is close to expiring, the app must clearly communicate the consequences: t...
The peer mentor profile header and detail screen should display a certification status badge that dynamically reflects t...
The certification screen should include a history section showing all past certifications with their issue dates, expiry...
Peer mentors need a dedicated certification status screen that shows their active certification record, the exact expiry...
The system must proactively notify peer mentors via push notification at defined thresholds (e.g., 90, 60, and 30 days b...
Coordinator Statistics Dashboard
View FeatureCoordinators who are also active peer mentors need a personal stats view alongside the team view. A tab or toggle on the...
The monthly activity bar chart must render using fl_chart via the fl-chart-adapter component. Each bar represents one ca...
The activity type donut chart must display each configured activity type as a colored segment, with a legend listing typ...
The Bufdir alignment validator component must analyze the aggregated statistics for the coordinator's chapter against co...
The coordinator statistics dashboard must present high-level KPIs in scannable summary cards immediately upon opening th...
The stats period filter bar must appear at the top of the coordinator statistics dashboard and persist the selected wind...
The peer mentor stats list must appear below the charts on the coordinator statistics dashboard and display one row per...
Push Notification Delivery
View FeatureA notification preferences screen allows peer mentors to toggle specific notification categories on or off independently...
When a coordinator approves or activates a pause for a peer mentor, the backend dispatches a confirmation push notificat...
The system evaluates open assignments against configurable thresholds (e.g., 10 days with no registered activity for a c...
The notification centre is a persistent in-app inbox that stores all notifications delivered to the user, regardless of...
A nightly edge function checks all active peer mentor certifications for upcoming expiry dates. Notifications are dispat...
Every push notification dispatched by the system must carry a deep link payload that resolves to a specific in-app route...
When a coordinator assigns a new contact or task to a peer mentor, the system must deliver a push notification to the me...
The app must request notification permissions at the right moment during the onboarding flow, after the user has seen th...
In-app Notification Centre
View FeatureThe scenario trigger engine evaluates predefined rules against each peer mentor's data (activity frequency, contact enga...
The notification preferences screen is accessible via a settings icon in the Notification Centre app bar. It displays a...
When a pause or reactivation event is recorded (by the mentor or coordinator), the pause-notification-orchestrator creat...
A horizontally scrollable filter bar sits below the page header on the Notification Centre screen. Each chip represents...
Each notification list item supports two read-marking interactions: tapping to open the notification detail (which marks...
The reminder system evaluates each peer mentor's contact assignments against their last registered activity date. When t...
When the certification expiry check edge function detects a certification within the expiry warning window (e.g. 30 days...
Tapping a notification list item that does not have a direct entity deep link (or when the notification has rich content...
The Notification Centre screen presents a unified inbox of all in-app notifications relevant to the peer mentor. Notific...
Each notification record contains a deep_link_path string that encodes the destination route and the relevant entity ID...
Organization Selection & Onboarding
View FeatureNew peer mentors go through an onboarding flow after their first organization selection. This may include confirming the...
Each partner organization has its own visual identity. After organization selection, the org branding cache loads the or...
Peer mentors affiliated with multiple organizations (a scenario specifically called out for NHF with up to 5 local chapt...
Each partner organization (NHF, Blindeforbundet, HLF, Barnekreftforeningen) uses different terminology for the same conc...
Different organizations have contracted different feature sets, and some features are in staged rollout. The feature fla...
When a peer mentor successfully authenticates, the app must resolve their organization memberships and present a clear s...
Supabase Row Level Security (RLS) policies must be configured at session initialization based on the active tenant conte...
Dynamic Terminology & Labels System
View FeatureDuring incremental rollout — a requirement shared by all partner organizations — the dynamic terminology system must sup...
Coordinators need confidence that the terminology configured centrally for their organization (e.g., 'likeperson' vs 'pe...
Blindeforbundet and NHF both have users who rely on screen readers. The WcagSemanticsLabelResolver bridges the dynamic t...
Peer mentors from Blindeforbundet conduct home visits in all regions of Norway, often with intermittent connectivity. Th...
The dynamic terminology system must seamlessly replace generic label keys with organization-specific values everywhere i...
The TerminologySyncService is responsible for pulling the current organization's label configuration from the Supabase b...
Organization-scoped Feature Flags
View FeatureWhen configuring a feature flag, administrators can set a rollout percentage (0–100%) in addition to the binary on/off s...
The feature flag admin screen includes an audit log section or dedicated history view showing all flag change events for...
The feature flag admin screen provides a centralized view of all configurable feature flags scoped to the administrator'...
Toggling a feature flag must be a deliberate, two-step action to prevent accidental activation or deactivation. After ta...
The feature-flag-initializer fetches the full flag configuration for the authenticated user's organization on startup an...
The feature-gate-widget wraps any UI element or navigation destination and consults the feature-flag-provider to determi...
All feature flag reads and writes must pass through Supabase RLS policies that restrict access to rows matching the auth...
Organizational Hierarchy & Structure Management
View FeatureWhen a peer mentor belongs to multiple chapters or when coordinators use proxy registration, the same activity can be re...
Structural edits to the hierarchy carry risk — moving a region could orphan chapters, deactivating a node could break ac...
Organizational structures are not static — local chapters form, disband, or reorganize regularly. The org admin must be...
Users in the system (particularly peer mentors and coordinators) must be formally assigned to one or more organizational...
Administrators who oversee multiple regions or chapters need to shift their operational context — viewing contacts, acti...
National-level administrators need statistical summaries that aggregate across the full hierarchy — from individual peer...
The organization administrator needs a clear, navigable tree view of the entire organizational hierarchy. For NHF this s...
External System Integration Configuration
View FeatureIntegration sync can be triggered manually or scheduled automatically. Administrators need to configure sync schedules a...
Not all data in the app should be exported to external systems. Organizations need fine-grained control over which recor...
Organization administrators need to establish a secure, verified connection between the app and their organization's acc...
Different accounting systems use different field names, data types, and code structures (e.g., chart of accounts codes,...
Integration failures can have downstream consequences — peer mentors not receiving reimbursements, Bufdir report data be...
API credentials (keys, secrets, tokens) for accounting systems must be stored with enterprise-grade security. The creden...
Duplicate exports are a critical financial risk. If the same approved expense claim is exported twice — due to a retry a...