Activity Log Viewer
Component Detail
Description
Scrollable, filterable log of all activities across the org's chapters, visible to org admins. Supports filtering by chapter, date range, activity type, and coordinator. Each entry links to the originating activity registration. Designed to surface activity summaries and pause statuses for governance oversight.
activity-log-viewer
Summaries
The Activity Log Viewer is a governance transparency tool that gives organizational administrators a unified, real-time audit trail across all chapters. By surfacing activity summaries, pause statuses, and certification states in one interface, it reduces compliance risk and enables leadership to detect irregularities before they escalate. This directly supports grant reporting obligations and demonstrates accountability to funders like Bufdir. Without this visibility, administrators would rely on manual chapter-level reporting, introducing delays and data gaps that could jeopardize funding renewals or trigger audit findings.
This is a medium-complexity frontend component targeting mobile, desktop, and web contexts simultaneously. Development requires coordination with the admin-statistics-service and org-hierarchy-navigator, both of which must be stable before integration testing can begin. Pagination, multi-axis filtering, and cross-platform layout each add testing surface area. Expect three filter dimensions (chapter, date range, type, coordinator) to require dedicated QA scenarios.
Export and deep-link navigation to activity detail screens introduce additional dependency chains. Plan for at least one round of UX review given its governance-facing audience.
Activity Log Viewer is a stateful UI component consuming paginated data from admin-statistics-service via applyFilters(ActivityLogFilters) and loadNextPage(). It maintains local filter state and delegates navigation via onActivityTapped(activityId) to org-hierarchy-navigator for deep-linking into activity registration detail screens. The refreshLog() interface supports pull-to-refresh and polling patterns. Implement filter state as an immutable value object passed to the service layer to simplify state diffs.
Pagination should use cursor-based tokens rather than offset to remain consistent with Supabase's real-time query model. exportFilteredLog() should serialize the current filter context and hand off to the export pipeline.
Responsibilities
- Display paginated list of activities across all org chapters
- Filter by chapter, date range, type, and responsible coordinator
- Link activity entries to detail screens for audit
- Show pause status and certification state per peer mentor
Interfaces
build(context)
applyFilters(ActivityLogFilters filters)
onActivityTapped(activityId)
exportFilteredLog()
loadNextPage()
refreshLog()
Relationships
Dependencies (2)
Components this component depends on