Configure Organization-Specific Terminology Labels
The Labels Config Screen in the admin portal presents a form-based editor listing every configurable label key alongside its current value and the system default. An administrator can update any or all keys and save the full configuration as a batch operation. The Labels Service fetches this configuration on app startup and caches it in Riverpod, so every Dynamic Label Widget in the app immediately reflects the saved strings. Label keys and their defaults are defined in the Label Keys Constants file to ensure type safety. This story covers the core configuration workflow for organizations like NHF, Blindeforbundet, and HLF that use fundamentally different terminology for the same concepts (e.g., 'likeperson' vs other role names, 'lokallag' vs other unit names).
User Story
Acceptance Criteria
- Given an administrator navigates to the admin portal, when they open the Labels Config screen, then all configurable label keys are listed with their current values and system defaults visible side by side
- Given the labels config screen is open, when an administrator edits one or more label fields and taps Save, then all changes are batch-written to the org_labels table via the Labels Repository
- Given a label has been saved, when any user opens or navigates within the app, then the Dynamic Label Widget renders the organization-specific string for that key everywhere it appears
- Given a label key has no custom value set, when the Dynamic Label Widget renders it, then the system default from Label Keys Constants is displayed so the UI is always fully populated
- Given the app starts up, when the Labels Service fetches the organization's label configuration from Supabase, then the configuration is cached in the Riverpod state layer and available synchronously throughout the app
Business Value
Terminology consistency between the app and an organization's existing culture is a primary adoption driver. When peer mentors and coordinators encounter unfamiliar labels for concepts they know well, trust in the tool drops and training costs rise. This configuration capability enables each member organization to see their own language from day one, dramatically reducing onboarding friction and making the product viable across the full client portfolio without custom development per organization.
Components
- Labels Config Screen ui
- Dynamic Label Widget ui
- Labels Service service
- Labels Repository data
- Label Keys Constants infrastructure