How bcgov/visitz-app works
Visitz is a cross-platform MAUI mobile app for CFD workers. Its principal workflow is to authenticate, retrieve caseload and related records from the REST API, synchronize them for local/offline use, and let workers review or update record details such as contacts, notes, visits, attachments, and safety assessments. The app also supports drafts and navigation across these workflows. The graph preserves documented capabilities and indexed modules; unsampled UI wiring and many API-to-service relationships are not asserted unless the supplied evidence shows them.
Main entry points: Vpi.cs API client · GetAllDataForOfflineService.cs Offline sync · Services Record services · Navigator.cs App navigation
Components 17
Mobile application
- MAUI app
visitz/Visitz/MauiProgram.cs - App navigation
visitz/Visitz/Navigator.cs - Record workflows
visitz/Visitz/Views/Entity - Caseload views
visitz/Visitz/Views/Caseload
Business services
- Service dispatch
visitz/Visitz/Services/ServiceHandler.cs - Offline sync
visitz/Visitz/Services/Caseload/GetAllDataForOfflineService.cs - Caseload retrieval
visitz/Visitz/Services/Caseload - Record services
visitz/Visitz/Services
REST API
- API client
visitz/VisitzApi/Vpi.cs - REST endpoints
visitz/VisitzApi/Endpoints - API payloads
visitz/VisitzApi/Models
Domain and storage
- Business records
visitz/VisitzModel/Models - Local Realm stores
visitz/Visitz/Storage/VisitzRealms.cs - Sync timestamps
visitz/VisitzModel/Storage/LastUpdatedPrefs.cs
Authentication
- OIDC client
visitz/Oidc/AuthenticationClient.cs - JWT handling
visitz/Oidc/TokenHolder.cs
Other components
- CFD worker
Connections 19
- CFD worker → MAUI app: uses app
README.md - MAUI app → App navigation: starts navigation
- App navigation → Caseload views: opens caseload
- App navigation → Record workflows: opens records
- CFD worker → OIDC client: authenticates
README.md - OIDC client → JWT handling: handles JWTs
visitz/Oidc/AuthenticationClient.cs - Service dispatch → Offline sync: dispatches services
visitz/Visitz/Services/ServiceHandler.cs - Offline sync → API client: requests API data
visitz/Visitz/Services/Caseload/GetAllDataForOfflineService.cs - Offline sync → Local Realm stores: synchronizes records
visitz/Visitz/Services/Caseload/GetAllDataForOfflineService.cs - Offline sync → Sync timestamps: reads timestamps
visitz/Visitz/Services/Caseload/GetAllDataForOfflineService.cs - Caseload retrieval → API client: retrieves caseload
visitz/Visitz/Services/Caseload/GetAllDataForOfflineService.cs - Record services → API client: retrieves record data
visitz/Visitz/Services/People/GetContactLegalAuthorityService.cs - Record services → Local Realm stores: stores synchronized data
visitz/Visitz/Services/People/GetContactLegalAuthorityService.cs - Record services → Sync timestamps: uses pagination state
visitz/Visitz/Services/People/GetContactLegalAuthorityService.cs - API client → REST endpoints: dispatches requests
visitz/VisitzApi/Vpi.cs - API client → API payloads: parses API data
visitz/VisitzApi/Vpi.cs - Business records → API payloads: maps API models
visitz/VisitzModel/Models/People/ContactLegalAuthority.cs - Record workflows → Record services: loads record data
- Caseload views → Caseload retrieval: loads caseload