low complexity extracted Bufdir Report Generation Confidence: 100%
8
Components
198
Shared
12
User Stories
Yes
Analyzed

Description

Allows coordinators and organization admins to select the reporting period for which a Bufdir report should be generated — typically aligned with Bufdir's annual or semi-annual grant cycle. The UI presents predefined period options (e.g., calendar year, Bufdir fiscal periods) alongside a custom date range for edge cases. The selected period filters the underlying activity aggregation, and the system confirms how many records fall within the range before proceeding. This prevents submitting incomplete reports for periods that are still in progress or where data entry may not yet be finalized.

Analysis

Business Value

Ensures reports are scoped correctly to grant cycles, preventing over- or under-reporting that could trigger audits or funding clawbacks. Gives organizations confidence that the data boundary is unambiguous before export.

Implementation Notes

Period configuration may differ per organization if Bufdir has different agreement dates with each. Store period presets in organization configuration rather than hardcoding. The UI should clearly display record counts and flag if the period appears incomplete (e.g., selected end date is in the future).

Components (206)

User Interface (3)

Service Layer (3)

Data Layer (1)

Infrastructure (1)

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 (12)

Load Persisted Period Configuration for Recurring Reports
medium 3 pts

As a As a Coordinator

I want to have the period selection screen pre-populate with my organization's configured default reporting period when I start a new Bufdir report

So that I do not have to re-enter the same period settings every reporting cycle and can proceed faster when the defaults are correct

Acceptance Criteria
  • Given the coordinator's organization has a saved period configuration, when the period selection screen opens, then the preset or date range from the saved configuration is pre-selected and the record count banner updates automatically
  • Given no prior configuration exists for the organization, when the period selection screen opens, then the most recently used preset is selected, or the current quarter preset is selected as the system default
  • Given the coordinator changes the period from the pre-populated default, when they confirm, then an option is presented to save the new selection as the new default for future reports
  • +1 more
View Full Story →
Compare Selected Period Against Previous Report to Detect Coverage Gaps
medium 5 pts

As a As a Coordinator

I want to see a comparison between the period I am selecting and the period covered by the last submitted Bufdir report

So that I can identify any gaps or overlaps in reporting coverage before confirming and ensure continuous compliance with Bufdir grant conditions

Acceptance Criteria
  • Given the coordinator has at least one previously submitted Bufdir report on record, when the period selection screen is opened, then a subtle indicator shows the end date of the last submitted period
  • Given the coordinator selects a period that leaves a gap after the last submitted report, when the gap is detected, then a non-blocking informational banner explains the gap in plain language and shows the uncovered date range
  • Given the coordinator selects a period that overlaps with the last submitted report, when the overlap is detected, then a warning banner explains that the overlapping window was already included in a previous submission and may result in duplicate activity counts
  • +1 more
View Full Story →
Load Persisted Period Configuration for Recurring Reports
medium 3 pts

As a As a Organization Administrator

I want to have the period selection screen pre-populate with my organization's configured default reporting period when I start a new Bufdir report

So that I do not have to re-enter the same period settings every reporting cycle and can proceed faster when the defaults are correct

Acceptance Criteria
  • Given the coordinator's organization has a saved period configuration, when the period selection screen opens, then the preset or date range from the saved configuration is pre-selected and the record count banner updates automatically
  • Given no prior configuration exists for the organization, when the period selection screen opens, then the most recently used preset is selected, or the current quarter preset is selected as the system default
  • Given the coordinator changes the period from the pre-populated default, when they confirm, then an option is presented to save the new selection as the new default for future reports
  • +1 more
View Full Story →
Compare Selected Period Against Previous Report to Detect Coverage Gaps
medium 5 pts

As a As a Organization Administrator

I want to see a comparison between the period I am selecting and the period covered by the last submitted Bufdir report

So that I can identify any gaps or overlaps in reporting coverage before confirming and ensure continuous compliance with Bufdir grant conditions

Acceptance Criteria
  • Given the coordinator has at least one previously submitted Bufdir report on record, when the period selection screen is opened, then a subtle indicator shows the end date of the last submitted period
  • Given the coordinator selects a period that leaves a gap after the last submitted report, when the gap is detected, then a non-blocking informational banner explains the gap in plain language and shows the uncovered date range
  • Given the coordinator selects a period that overlaps with the last submitted report, when the overlap is detected, then a warning banner explains that the overlapping window was already included in a previous submission and may result in duplicate activity counts
  • +1 more
View Full Story →
View Activity Record Count for Selected Period Before Confirming
high 3 pts

As a As a Coordinator

I want to see the number of activity records that will be included in the Bufdir report for the currently selected period before I confirm and proceed

So that I can verify that the period I have chosen captures all expected activities and avoid submitting incomplete or accidentally oversized reports

Acceptance Criteria
  • Given any period is selected or modified on the period selection screen, when the selection changes, then the record count banner updates within 1 second to show the count of activities in that period
  • Given the period includes activities already included in a previously submitted report, when the count is displayed, then previously exported records are visually distinguished or excluded with an explanatory note
  • Given the coordinator's organization has a multi-chapter hierarchy, when the record count is shown, then only activities belonging to the coordinator's authorized scope are counted
  • +1 more
View Full Story →
Receive Validation Feedback When Selected Period Is Invalid for Bufdir Submission
high 3 pts

As a As a Coordinator

I want to receive clear validation feedback when the period I have selected does not meet Bufdir reporting requirements

So that I understand what needs to be corrected before I proceed and do not waste time submitting a report that will be rejected

Acceptance Criteria
  • Given the coordinator selects a period that ends in the middle of a calendar month, when they attempt to confirm, then the period validator surfaces a message explaining that Bufdir requires complete calendar month boundaries
  • Given the coordinator selects a period that spans more than one grant year without split-year configuration, when they confirm, then a warning explains the cross-year span and prompts confirmation or correction
  • Given a validation error is shown, when the coordinator reads the message, then it is written in plain language without technical abbreviations and includes the specific corrective action needed
  • +2 more
View Full Story →
Define Custom Date Range for Reporting Period
high 5 pts

As a As a Coordinator

I want to enter a custom start and end date for a Bufdir reporting period when standard presets do not match my organization's grant cycle

So that I can generate accurate reports that align precisely with the specific funding period or audit window required by Bufdir

Acceptance Criteria
  • Given the coordinator taps 'Custom Range' on the period selection screen, when the custom date range picker opens, then two accessible date input fields are displayed for start date and end date
  • Given the coordinator enters a start date later than the end date, when they attempt to confirm, then an inline validation error is shown and the confirm action is disabled
  • Given valid start and end dates are entered, when both fields are filled, then the record count banner updates in real time to reflect the count of activities within that window
  • +2 more
View Full Story →
View Activity Record Count for Selected Period Before Confirming
high 3 pts

As a As a Organization Administrator

I want to see the number of activity records that will be included in the Bufdir report for the currently selected period before I confirm and proceed

So that I can verify that the period I have chosen captures all expected activities and avoid submitting incomplete or accidentally oversized reports

Acceptance Criteria
  • Given any period is selected or modified on the period selection screen, when the selection changes, then the record count banner updates within 1 second to show the count of activities in that period
  • Given the period includes activities already included in a previously submitted report, when the count is displayed, then previously exported records are visually distinguished or excluded with an explanatory note
  • Given the coordinator's organization has a multi-chapter hierarchy, when the record count is shown, then only activities belonging to the coordinator's authorized scope are counted
  • +1 more
View Full Story →
Receive Validation Feedback When Selected Period Is Invalid for Bufdir Submission
high 3 pts

As a As a Organization Administrator

I want to receive clear validation feedback when the period I have selected does not meet Bufdir reporting requirements

So that I understand what needs to be corrected before I proceed and do not waste time submitting a report that will be rejected

Acceptance Criteria
  • Given the coordinator selects a period that ends in the middle of a calendar month, when they attempt to confirm, then the period validator surfaces a message explaining that Bufdir requires complete calendar month boundaries
  • Given the coordinator selects a period that spans more than one grant year without split-year configuration, when they confirm, then a warning explains the cross-year span and prompts confirmation or correction
  • Given a validation error is shown, when the coordinator reads the message, then it is written in plain language without technical abbreviations and includes the specific corrective action needed
  • +2 more
View Full Story →
Define Custom Date Range for Reporting Period
high 5 pts

As a As a Organization Administrator

I want to enter a custom start and end date for a Bufdir reporting period when standard presets do not match my organization's grant cycle

So that I can generate accurate reports that align precisely with the specific funding period or audit window required by Bufdir

Acceptance Criteria
  • Given the coordinator taps 'Custom Range' on the period selection screen, when the custom date range picker opens, then two accessible date input fields are displayed for start date and end date
  • Given the coordinator enters a start date later than the end date, when they attempt to confirm, then an inline validation error is shown and the confirm action is disabled
  • Given valid start and end dates are entered, when both fields are filled, then the record count banner updates in real time to reflect the count of activities within that window
  • +2 more
View Full Story →
Select Reporting Period Using Preset Options
critical 5 pts

As a As a Coordinator

I want to select a Bufdir reporting period from a list of common presets such as current quarter, previous quarter, or current year

So that I can quickly define the date range for my report without manually entering dates every time

Acceptance Criteria
  • Given the coordinator navigates to the Bufdir report period selection screen, when the screen loads, then a list of period presets is displayed including at least: Current Quarter, Previous Quarter, Current Year, Previous Year, Last 6 Months
  • Given the coordinator taps a preset, when the preset is selected, then the start and end dates are automatically populated and a record count banner updates to show the number of matching activity records
  • Given the coordinator has selected a preset, when they confirm the selection, then the system stores the chosen period and navigates to the next step in the report generation flow
  • +1 more
View Full Story →
Select Reporting Period Using Preset Options
critical 5 pts

As a As a Organization Administrator

I want to select a Bufdir reporting period from a list of common presets such as current quarter, previous quarter, or current year

So that I can quickly define the date range for my report without manually entering dates every time

Acceptance Criteria
  • Given the coordinator navigates to the Bufdir report period selection screen, when the screen loads, then a list of period presets is displayed including at least: Current Quarter, Previous Quarter, Current Year, Previous Year, Last 6 Months
  • Given the coordinator taps a preset, when the preset is selected, then the start and end dates are automatically populated and a record count banner updates to show the number of matching activity records
  • Given the coordinator has selected a preset, when they confirm the selection, then the system stores the chosen period and navigates to the next step in the report generation flow
  • +1 more
View Full Story →