beginner Skill Level
174
User Stories
30
Related Features
Moderate
Avg Complexity

Story Priority Distribution

0
High (0%)
174
Medium (100%)
0
Low (0%)

User Stories by Feature

BankID & Vipps Authentication

View Feature
Manage Biometric Authentication Settings

Within the app's settings, users can view their current biometric authentication status and manage enrollment. Options i...

medium
Enroll Device Biometrics After First Login

After a successful first-time BankID or Vipps authentication, the app prompts the user to enable biometric re-authentica...

medium
Re-authenticate Using Device Biometrics

On subsequent app launches, when the user has previously enrolled biometrics, the Biometric Auth Screen presents the pla...

medium
Fall Back to BankID or Vipps When Biometrics Fail

When biometric authentication fails for any reason — hardware failure, too many failed attempts, biometric data changed...

medium
Handle Authentication Errors and Provider Cancellation Gracefully

Both BankID and Vipps can return a variety of error states: user cancellation, network timeout, provider unavailability,...

medium
Sync Personnummer to Member System via Vipps Login

When a user authenticates with Vipps and the Vipps OIDC token contains a personnummer claim, the Vipps Integration Servi...

medium
Maintain Secure Session Across App Restarts

After successful BankID or Vipps authentication, the Auth Token Repository stores the Supabase access token and refresh...

medium
Authenticate with BankID on First Login

On first login, the user selects BankID as their authentication method. The app launches an in-app browser that navigate...

medium
Authenticate with Vipps on First Login

On first login, the user selects Vipps as their authentication method. The app launches an in-app browser pointing to th...

medium

Contact Detail & Management

View Feature
View Organisation-Specific Custom Fields on a Contact

The Custom Fields Table Widget fetches the organisation's field definitions from the organisation labels system in Supab...

medium
Auto-Save Contact Edit Draft to Prevent Data Loss

The Edit Contact Screen implements periodic auto-save of the current form state to SQLite on the device. The draft is ke...

medium
Navigate to Contact Detail via Deep-Link from Other Screens

The Contact Detail Screen supports deep-link navigation, meaning it can be opened directly from any screen that referenc...

medium
Access Contact Notes Offline with Synchronisation on Reconnect

The Contact Notes Repository implements a local-first caching strategy. Recent notes for each contact are cached in SQLi...

medium
View Complete Contact Profile

The Contact Detail Screen is the primary read view for a single contact record. It presents personal information (name,...

medium
Edit Contact Record via Step-by-Step Form

The Edit Contact Screen provides a guided, step-by-step reactive form built with Flutter's Form widget and custom AppTex...

medium
Add a Note to a Contact Record

The Contact Notes Widget provides inline add-note functionality accessible from the contact detail screen. When a note i...

medium
Browse Chronological Notes Timeline for a Contact

The Contact Notes Widget renders the full notes history as a scrollable vertical timeline. Each note entry displays the...

medium
Validate Contact Fields in Real Time During Editing

The Edit Contact Screen applies field-level validation as part of Flutter's reactive form validation system. Validation...

medium

Push Notifications & Scenario-Based Alerts

View Feature
Navigate Directly to Relevant Feature from Notification Tap

Each push notification payload includes a deep-link route payload that the Push Notification Service interprets when the...

medium
Mark Notifications as Read and Delete Individual Notifications

The Notification Item Widget supports three interaction patterns for notification management. Tapping a notification mar...

medium
Receive Scenario-Based Milestone and Engagement Alert

Beyond operational reminders, the Notification Scenario Engine supports engagement-focused milestone notifications. Conf...

medium
View Notification Center

The Notifications Screen provides a chronological, date-grouped list of all push notifications delivered to the authenti...

medium
Configure Per-Category Notification Preferences

The Notification Settings Screen allows each user to control which push notification categories they subscribe to. A mas...

medium
Receive Inactivity Reminder After Extended Period Without Activity Log

The Notification Scenario Engine includes an inactivity detection rule. A Supabase scheduled Edge Function runs periodic...

medium
Sync Scheduled Activities and Events to Device Native Calendar

The Calendar Sync Service integrates with the device's native calendar using the device_calendar Flutter plugin. On firs...

medium
Receive Push Notification for New Assignment Dispatch

When a coordinator dispatches a new encrypted assignment to a peer mentor, the Notification Scenario Engine detects the...

medium
Receive Automatic 10-Day Follow-Up Reminder for Unacknowledged Assignment

The Notification Scenario Engine includes a time-based follow-up rule specific to Norges Blindeforbund's workflow requir...

medium