CRITICAL story-dynamic-terminology-labels-system-coordinator-003 5 pts
5
Story Points
Critical
Priority
Dynamic Terminology & Labels System
Feature

User Story

As a Coordinator
I want the app to automatically fetch and cache the latest terminology configuration for my organization whenever connectivity is available
So that any updates made to organizational labels by an administrator are reflected promptly across all users' devices without requiring manual intervention or app updates

Acceptance Criteria

  • Given I open the app with network connectivity, When the app initializes, Then the TerminologySyncService fetches the latest label configuration for my organization from Supabase
  • Given a successful sync has completed, When the app is used offline afterward, Then the TerminologyCacheAdapter serves the previously fetched labels without any visible degradation
  • Given the terminology configuration on the backend has changed since my last sync, When I open the app, Then the updated labels are fetched and the UI rebuilds to reflect the changes
  • Given a sync fails due to network error, When I use the app, Then the previously cached terminology is used and no error is surfaced to the user
  • Given I switch organizations (multi-org scenario), When I complete the org switch, Then the terminology sync immediately fetches the new organization's configuration and all labels update accordingly

Business Value

Organizations periodically revise their terminology as roles evolve and new volunteer categories are introduced. A reliable background sync ensures all users always operate with the most current labels, preventing confusion caused by outdated terminology, and allowing organizations to update their language without coordinating app release cycles.