Bufdir Report History & Audit Log
Feature Detail
Description
Maintains a persistent history of all previously generated Bufdir reports within the app, including the period covered, generation date, generating user, and a link to re-download the exported artifact. Organization admins can review the full report log and re-export any past report if needed. The history view also surfaces a summary of key figures from each past report (e.g., total activities, total hours, participants reached) to support year-over-year comparisons without requiring a full re-export. This gives leadership a quick pulse on trend direction during internal reviews.
Analysis
Supports accountability and auditability requirements inherent in public grant funding. If Bufdir or internal auditors request documentation of past reporting, coordinators can retrieve it instantly rather than hunting through email archives or local file systems. Reduces risk of lost reports.
Store report metadata and the generated file reference in a dedicated Supabase table scoped to the organization. Access should be restricted to coordinator and admin roles. File storage via Supabase Storage with organization-scoped access policies. Consider a retention policy aligned with Bufdir's grant audit window (typically 5 years).
Components (205)
Shared Components
These components are reused across multiple features
User Interface (59)
Service Layer (52)
Data Layer (33)
Infrastructure (54)
User Stories (14)
As a As a Coordinator
I want to filter the Bufdir report history by year, reporting period, and submission status, and to search by period label
So that I can quickly locate a specific report without scrolling through years of history, especially when preparing for an audit or responding to a Bufdir query
- Given the coordinator selects '2024' from the year filter, when the filter is applied, then only reports with a submission date or reporting period in 2024 are shown
- Given the coordinator selects 'Failed' from the status filter, when the filter is applied, then only reports with a failed or error status are listed
- Given the coordinator types '2024 Q2' in the search field, when results update, then only report entries matching that period label are displayed
- +3 more
As a As a Coordinator
I want to re-download or re-export any previously submitted Bufdir report in its original file format (Excel, CSV, or PDF)
So that I can provide a copy to Bufdir on request, share it with internal stakeholders, or archive it locally without needing to regenerate the report from scratch
- Given the coordinator taps 're-export' on a historical report, when the action completes, then the original file is retrieved from storage and offered as a download or share-sheet option on the device
- Given the original file has been purged from storage, when the coordinator requests a re-export, then the system clearly informs the coordinator that the file will be regenerated from historical data and asks for confirmation before proceeding
- Given the coordinator confirms a re-export, when the file is generated, then an audit log entry is created recording the coordinator's user ID, timestamp, and report period
- +2 more
As a As a Coordinator
I want to see a side-by-side comparison of the current period's Bufdir data against the most recently submitted report for the same or adjacent period
So that I can spot unusual changes in activity volumes or participant counts before submitting, reducing the risk of submitting erroneous data to Bufdir
- Given the coordinator opens the period diff view, when it loads, then the current period's metrics are shown alongside the previous period's submitted metrics in a two-column layout
- Given a metric has changed by more than 20% compared to the prior period, when the diff view is displayed, then that metric row is highlighted with an amber warning indicator and the percentage change is shown
- Given the coordinator is viewing the diff, when they tap on a highlighted metric, then a contextual explanation is shown suggesting possible causes (e.g., 'Participant count dropped 35% — check if all activity registrations for the period have been saved')
- +2 more
As a As a Organization Administrator
I want to filter the Bufdir report history by year, reporting period, and submission status, and to search by period label
So that I can quickly locate a specific report without scrolling through years of history, especially when preparing for an audit or responding to a Bufdir query
- Given the coordinator selects '2024' from the year filter, when the filter is applied, then only reports with a submission date or reporting period in 2024 are shown
- Given the coordinator selects 'Failed' from the status filter, when the filter is applied, then only reports with a failed or error status are listed
- Given the coordinator types '2024 Q2' in the search field, when results update, then only report entries matching that period label are displayed
- +3 more
As a As a Organization Administrator
I want to re-download or re-export any previously submitted Bufdir report in its original file format (Excel, CSV, or PDF)
So that I can provide a copy to Bufdir on request, share it with internal stakeholders, or archive it locally without needing to regenerate the report from scratch
- Given the coordinator taps 're-export' on a historical report, when the action completes, then the original file is retrieved from storage and offered as a download or share-sheet option on the device
- Given the original file has been purged from storage, when the coordinator requests a re-export, then the system clearly informs the coordinator that the file will be regenerated from historical data and asks for confirmation before proceeding
- Given the coordinator confirms a re-export, when the file is generated, then an audit log entry is created recording the coordinator's user ID, timestamp, and report period
- +2 more
As a As a Organization Administrator
I want to see a side-by-side comparison of the current period's Bufdir data against the most recently submitted report for the same or adjacent period
So that I can spot unusual changes in activity volumes or participant counts before submitting, reducing the risk of submitting erroneous data to Bufdir
- Given the coordinator opens the period diff view, when it loads, then the current period's metrics are shown alongside the previous period's submitted metrics in a two-column layout
- Given a metric has changed by more than 20% compared to the prior period, when the diff view is displayed, then that metric row is highlighted with an amber warning indicator and the percentage change is shown
- Given the coordinator is viewing the diff, when they tap on a highlighted metric, then a contextual explanation is shown suggesting possible causes (e.g., 'Participant count dropped 35% — check if all activity registrations for the period have been saved')
- +2 more
As a As a Coordinator
I want to view a chronological list of all Bufdir reports that have been submitted from my organization
So that I can track compliance, verify that required reporting periods have been covered, and quickly identify any gaps in submission history
- Given the coordinator navigates to the Bufdir report history screen, when the screen loads, then all past submissions are displayed in reverse chronological order with period, date submitted, status, and submitter name visible on each list item
- Given there are no past submissions, when the coordinator opens the history screen, then a clear empty-state message is shown explaining that no reports have been submitted yet
- Given the coordinator selects a year filter, when the filter is applied, then only reports from that calendar year are displayed in the list
- +2 more
As a As a Coordinator
I want to see aggregated metrics for any previously submitted Bufdir report — including total activities, unique participants, hours delivered, and geographic distribution
So that I can verify the numbers that were reported to Bufdir match my expectations and detect discrepancies before they become compliance issues
- Given the coordinator taps on a historical report entry, when the detail view opens, then a metrics widget shows total sessions, unique participants, total hours, activity category breakdown, and geographic distribution for that specific reporting period
- Given the coordinator views a report submitted 6 months ago, when activity records have since been edited, then the history metrics still show the values as they were at time of submission
- Given the metrics widget is displayed, when the coordinator reviews it, then each metric is labeled in plain language matching Bufdir's official terminology
- +1 more
As a As a Coordinator
I want to download report files from the history screen using secure, time-limited links that do not expose raw storage paths
So that sensitive grant reporting data is protected from unauthorized access even if a link is accidentally shared
- Given the coordinator requests a file download, when the system generates the download link, then the link is a signed URL with a 15-minute expiry and is not a direct public storage path
- Given a signed URL has expired, when someone attempts to use it, then the server returns an authorization error and the file is not served
- Given a coordinator from organization A has a signed URL for their report, when a coordinator from organization B attempts to use that URL, then access is denied by the RLS-enforced storage policy
- +2 more
As a As a Coordinator
I want to see a detailed audit log for each Bufdir report showing every action taken — including who initiated the export, any validation warnings that were overridden, and all re-export events
So that I can demonstrate to Bufdir or internal auditors that our reporting process is transparent, controlled, and traceable
- Given the coordinator opens the audit trail panel for a report, when the panel loads, then all events are shown in chronological order with timestamp, event type, and acting user name
- Given a validation warning was present at submission time, when the coordinator views the audit trail, then the warning is recorded as an event with the warning message and the coordinator who accepted it
- Given a re-export was performed by a different coordinator, when the original coordinator views the audit trail, then the re-export event shows the other coordinator's name
- +2 more
As a As a Organization Administrator
I want to view a chronological list of all Bufdir reports that have been submitted from my organization
So that I can track compliance, verify that required reporting periods have been covered, and quickly identify any gaps in submission history
- Given the coordinator navigates to the Bufdir report history screen, when the screen loads, then all past submissions are displayed in reverse chronological order with period, date submitted, status, and submitter name visible on each list item
- Given there are no past submissions, when the coordinator opens the history screen, then a clear empty-state message is shown explaining that no reports have been submitted yet
- Given the coordinator selects a year filter, when the filter is applied, then only reports from that calendar year are displayed in the list
- +2 more
As a As a Organization Administrator
I want to see aggregated metrics for any previously submitted Bufdir report — including total activities, unique participants, hours delivered, and geographic distribution
So that I can verify the numbers that were reported to Bufdir match my expectations and detect discrepancies before they become compliance issues
- Given the coordinator taps on a historical report entry, when the detail view opens, then a metrics widget shows total sessions, unique participants, total hours, activity category breakdown, and geographic distribution for that specific reporting period
- Given the coordinator views a report submitted 6 months ago, when activity records have since been edited, then the history metrics still show the values as they were at time of submission
- Given the metrics widget is displayed, when the coordinator reviews it, then each metric is labeled in plain language matching Bufdir's official terminology
- +1 more
As a As a Organization Administrator
I want to download report files from the history screen using secure, time-limited links that do not expose raw storage paths
So that sensitive grant reporting data is protected from unauthorized access even if a link is accidentally shared
- Given the coordinator requests a file download, when the system generates the download link, then the link is a signed URL with a 15-minute expiry and is not a direct public storage path
- Given a signed URL has expired, when someone attempts to use it, then the server returns an authorization error and the file is not served
- Given a coordinator from organization A has a signed URL for their report, when a coordinator from organization B attempts to use that URL, then access is denied by the RLS-enforced storage policy
- +2 more
As a As a Organization Administrator
I want to see a detailed audit log for each Bufdir report showing every action taken — including who initiated the export, any validation warnings that were overridden, and all re-export events
So that I can demonstrate to Bufdir or internal auditors that our reporting process is transparent, controlled, and traceable
- Given the coordinator opens the audit trail panel for a report, when the panel loads, then all events are shown in chronological order with timestamp, event type, and acting user name
- Given a validation warning was present at submission time, when the coordinator views the audit trail, then the warning is recorded as an event with the warning message and the coordinator who accepted it
- Given a re-export was performed by a different coordinator, when the original coordinator views the audit trail, then the re-export event shows the other coordinator's name
- +2 more