Organization Administrator
Organization administrators are senior staff or designated administrators within a national or regional member organization (such as NHF, Blindeforbundet, HLF, or Barnekreftforeningen). They are responsible for configuring the application for their organization, managing the overall organizational structure, overseeing reporting compliance, and handling administrative tasks that span their entire organization. They have advanced digital skills and interact with the app primarily through the admin portal and high-level reporting dashboards.
Story Priority Distribution
User Stories by Feature
Email & Password Login
View FeatureThe logout action is accessible from the app's settings menu. When triggered, the Auth Service calls Supabase Auth's sig...
When authentication fails, the user must receive actionable, localized feedback rather than a generic error. The Auth Se...
From the login screen, the user can navigate to the password reset flow by tapping a 'Forgot password?' link. The Passwo...
When the user taps the reset link in their email, the app handles the deep-link redirect via the registered URI scheme a...
After a successful email/password login, the Supabase JWT session token is securely persisted via Flutter Secure Storage...
Any registered user must be able to authenticate using their email address and password as a universal fallback authenti...
BankID & Vipps Authentication
View FeatureWithin the app's settings, users can view their current biometric authentication status and manage enrollment. Options i...
After a successful first-time BankID or Vipps authentication, the app prompts the user to enable biometric re-authentica...
On subsequent app launches, when the user has previously enrolled biometrics, the Biometric Auth Screen presents the pla...
When biometric authentication fails for any reason — hardware failure, too many failed attempts, biometric data changed...
Both BankID and Vipps can return a variety of error states: user cancellation, network timeout, provider unavailability,...
When a user authenticates with Vipps and the Vipps OIDC token contains a personnummer claim, the Vipps Integration Servi...
After successful BankID or Vipps authentication, the Auth Token Repository stores the Supabase access token and refresh...
On first login, the user selects BankID as their authentication method. The app launches an in-app browser that navigate...
On first login, the user selects Vipps as their authentication method. The app launches an in-app browser pointing to th...
Role-Based Access Control
View FeatureUsers who hold multiple roles across their organizational memberships can toggle their active role via the Role Switch W...
The Role Config Store provides a local cache layer for role and membership data fetched from Supabase. When the device l...
The Organization Administrator has elevated permissions to manage user roles within their organizational scope. Through...
When a user switches their active role via the Role Switch Widget, the Role Authorization Service triggers a full naviga...
When a user belongs to multiple organizations or local associations, the Organization Selection Screen is displayed imme...
When an authenticated user navigates to a route that requires permissions their current role does not grant, the Permiss...
The Permission Guard is integrated into GoRouter's redirect mechanism and is evaluated on every navigation event includi...
Reimbursement Approval Workflow
View FeatureThe Approval Status Widget provides a compact, reusable status indicator that can be embedded wherever a reimbursement s...
The organisation administrator can access a summary view of approval disposition data from the Approval Repository — tot...
The organisation administrator accesses the reimbursement workflow configuration section in admin settings. They can set...
Both coordinators and organisation administrators can open the Reimbursement Detail Screen for any submission (not just...
Bufdir Automated Reporting
View FeatureOrganization Administrators have organizational-level accountability for Bufdir grant reports. After a coordinator gener...
The Report Preview Screen renders the generated report in the layout required by Bufdir, showing all aggregated data sec...
The Bufdir Report Screen displays a chronological list of all previously generated report snapshots for the user's organ...
From the report history list, the user can select any stored snapshot and trigger a re-export. The export is rendered fr...
Large organizations with many registered activities may take significant time to aggregate data for a full reporting per...
Each partner organization (NHF, Blindeforbundet, HLF, Barnekreftforeningen) may have different grant agreements with Buf...
The system asynchronously aggregates all registered activities, events, and participant data within the selected reporti...
The Report Period Selector Widget presents available Bufdir reporting periods as defined by the organization's grant req...
The Report Export Service renders the finalized report snapshot into the selected export format. PDF export produces a f...
Coordinator Reports & Dashboards
View FeatureThe coordinator dashboard includes a period-over-period comparison capability exposed via the Report Filter Widget. The...
The Report Filter Widget provides a multi-select filter panel that allows users to combine filters across area, organiza...
The Export Action Widget is embedded in the coordinator dashboard toolbar and triggers a CSV export of whatever data is...
The organization administrator's dashboard view extends beyond the local scope available to coordinators and presents a...
Upon navigating to the coordinator dashboard, the user sees a consolidated view of activity statistics, peer mentor coun...
The Report Scope Resolver service reads the authenticated user's role and organizational memberships to derive a concret...
Assignment Counting & Honorarium Tracking
View FeatureA dedicated Assignment Count Screen displays the peer mentor's total completed assignments alongside a visual progress i...
The Honorarium Calculation Service reads organization-specific threshold configurations stored in integration_configs. A...
A Supabase PostgreSQL database trigger fires automatically on every insert into the assignments table, incrementing a de...
Duplicate Activity Detection
View FeatureAfter the Duplicate Warning Dialog is displayed, the user has the option to review the conflicting record and confirm th...
When the Duplicate Warning Dialog is presented, the user can choose to cancel the submission instead of proceeding. Canc...
When a user submits an activity record, the system runs a server-side similarity check against existing activities for t...
Push Notifications & Scenario-Based Alerts
View FeatureEach push notification payload includes a deep-link route payload that the Push Notification Service interprets when the...
Organization administrators access a notification configuration section within the Admin Settings Screen. Here they can...
The Notification Item Widget supports three interaction patterns for notification management. Tapping a notification mar...
The Notifications Screen provides a chronological, date-grouped list of all push notifications delivered to the authenti...
The Notification Settings Screen allows each user to control which push notification categories they subscribe to. A mas...
Admin Portal
View FeatureDifferent member organizations use different terminology for the same concepts — NHF, Blindeforbundet, and HLF each have...
The Admin Audit Log Screen presents an immutable, read-only record of all administrative actions. Each entry shows the a...
The Admin Dashboard provides a unified landing page for both Organization Administrators and Global Administrators. Each...
The Admin User Management Screen enables Organization Administrators to browse all users within their permitted scope, s...
Role assignment and revocation is a high-stakes admin action that must be accurate, audited, and immediately effective....
Multi-Organization Membership Handling
View FeatureDifferent organizations have different activity patterns — some run daily recurring sessions where date variance of one...
Even with the persistent profile widget in the header, critical write operations such as activity submission, bulk appro...
When a user belongs to multiple local associations, many activities must be attributed to exactly one organization for B...
Administrators need a clear, consolidated view of all organizations a user is affiliated with. NHF explicitly identified...
Administrators — particularly Global Administrators who oversee multiple organizations — need a frictionless mechanism t...
Double-reporting is the core compliance risk for NHF, where a peer mentor affiliated with multiple lokallag could regist...
Organization Structure Management
View FeatureFrom the Org Level Detail Screen, an authorized administrator can initiate deletion of an organizational unit. Before pr...
The Organization Structure Management feature is surfaced through the Admin Portal as a dedicated section. From the Admi...
Tapping an org unit node in the tree or navigating directly to it opens the Org Level Detail Screen. The screen displays...
From the Org Level Detail Screen, an Organization Administrator can tap the edit action to open an inline edit form for...
The Organization Tree Screen renders the complete multi-tier hierarchy using a recursive Flutter expandable list. Admini...
From the Organization Tree Screen or a unit detail screen, an authorized administrator can initiate creation of a new or...
The Activity Attribution Service walks the organizational hierarchy upward to aggregate activity counts at each level. W...
Organization Labels & Terminology
View FeatureThe Labels Config Screen provides a reset control alongside each label field (or a bulk reset for all keys) that restore...
The Labels Config Screen presents a comprehensive, organized view of all label keys defined in the Label Keys Constants...
The Labels Config Screen in the admin portal presents a form-based editor listing every configurable label key alongside...
When setting up a new organization or overhauling terminology after a rebranding, administrators need to update many lab...
Power of Attorney & Documentation Digitization
View FeatureThe document detail screen provides archive and delete actions for documents in eligible states (expired, superseded). A...
The document management screen displays all uploaded legal and medical documents including powers of attorney, medical r...
The document detail screen presents a comprehensive view of a single document's lifecycle. In addition to basic metadata...
The document expiry notification service runs as a scheduled background process that checks all document expiry dates da...
The document management screen includes a dedicated section for printable templates, accessible alongside the digital do...
The document upload flow allows an Organization Administrator to select a file from their device or capture a scan of a...
The document signing widget embeds the signing initiation flow within the document detail view. The administrator select...
Accounting System Integration
View FeatureIn addition to the automatic post-approval sync trigger, administrators need the ability to initiate a manual sync from...
The accounting sync orchestrator tracks failure patterns and emits alert events when: three or more consecutive sync att...
The integration status screen provides a real-time overview of the accounting sync pipeline. It displays the connector t...
The sync log repository records every outbound sync attempt with a full audit trail: the record type (reimbursement or h...
When individual records fail to sync (due to authentication errors, network timeouts, API rate limits, or malformed payl...
Each organization's accounting integration has an enabled/disabled feature flag stored in the integration config reposit...
Organization administrators must be able to set up the accounting integration specific to their organization. For Blinde...
Member System Integration
View FeatureThe member sync status widget includes a 'Sync Now' action that initiates an immediate sync for the selected integration...
When members authenticate via Vipps SSO, the returned personnummer is automatically written back to the member record in...
The sync audit history is accessible from the integration management section and displays a chronological log of all syn...
Organization Administrators can define per-field or per-category conflict resolution rules for their organization's memb...
The member sync status widget provides a real-time overview of synchronization health per organization. Organization Adm...
Administrators can set up or update the Cornerstone REST API integration by providing the API key, base URL, and webhook...
Administrators can set up or update the Consio REST API integration by providing the API key and base URL. The integrati...
When the sync service detects a conflict between the external system and the app (e.g., a member's role was changed in t...
External Portal Coordination
View FeatureThe portal integration config screen includes a sync status panel showing the last successful sync timestamp, the count...
The portal integration config screen allows administrators to define a per-organization feature ownership map. Each togg...
The portal integration config screen includes a deep link management section where administrators can define and update...
When HLF administrators update membership records in the Min Side Dynamics portal, the portal publishes a webhook event...
Coordinator Member Overview
View FeatureThe Member Status Filter Widget integrates with the Navigation State Store to persist active filter selections across na...
The Member Status Filter Widget renders a horizontal chip bar at the top of the member overview screen with multi-select...
Access to the member overview screen is gated by the Permission Guard service, which validates that the authenticated us...
The member overview screen presents a unified, scrollable list of all peer mentors and members scoped to the authenticat...
Coordinator Activity Approval & Correction
View FeatureAny authorized user (coordinator within their organizational scope, or organization administrator for their entire organ...
Organization administrators access workflow configuration through the admin settings area. They can set: (1) the mileage...
Navigation Shell
View FeatureThe Navigation Shell Widget includes an AppBar with a hamburger menu icon that opens a Flutter Drawer. The Drawer lists...
Using Flutter's StatefulShellRoute, each tab branch maintains its own Navigator stack and widget state independently. A...
The App Router Service is configured with go_router deep link support. When the app receives a push notification tap eve...
The Navigation Shell Widget and Bottom Navigation Bar are built using Flutter's Accessible Widget Library with semantic...
The bottom navigation bar provides persistent, one-tap access to all five primary tab destinations throughout the app. T...
The App Router Service applies role-based route guards at the shell level using Riverpod providers that reactively read...
The App Router Service uses a Riverpod provider that listens to Supabase's auth state stream. When the authentication st...
Settings & Preferences
View FeatureA language selection card in Settings allows the user to choose their preferred display language. The selection is appli...
User preferences (notification toggles, language selection, and references to accessibility settings) are stored using a...
When an Organization Administrator opens the Settings screen, additional settings cards are shown based on the organizat...
The Settings screen provides a notifications card section where users can enable or disable individual notification cate...
The Settings screen includes an account management card containing a sign-out action. Tapping the sign-out button presen...
The Settings screen includes a dedicated accessibility card section that serves as the navigation entry point to the ful...
The Settings screen must be reachable via the hamburger menu on every tab of the bottom navigation bar. The screen displ...