# WalkGuide Traceability Audit ## Use Case To Code | Use Case | Flutter Entry | Backend Entry | Status | |---|---|---|---| | Register/Login | `features/auth/*` | `AuthController`, `AuthService` | Implemented | | Pair Guardian/User | `features/pairing/pairing_screens.dart` | `PairingController`, `PairingService` | Implemented | | Start/Stop WalkGuide | `features/walk_guide/walk_guide_screen.dart` | `POST /user/walkguide/start`, `POST /user/walkguide/stop` | Implemented | | Obstacle Detection | `core/ai/*`, `walk_guide_screen.dart` | `POST /user/obstacle` | Partially implemented; real `.tflite` model file still required | | Location Tracking | `LocationReporterService`, navigation/walk screens | `LocationService`, `LocationBroadcaster` | Implemented | | SOS | `features/sos/sos_screen.dart` | `SosService`, `GuardianController` | Implemented | | Notifications | `features/notifications/notification_screen.dart` | `NotificationService`, `FcmService` | Partially implemented; backend FCM is log-only without credentials | | Guardian Dashboard | `guardian_dashboard_screen.dart` | `GuardianDashboardService` | Implemented | | Call | `features/call/call_screen.dart`, `CallService` | `CallController`, `AgoraTokenService` | Partially implemented; Agora App ID/credential required for live call | | Geofence | guardian dashboard screens | `GeofenceService` | Implemented | ## Design Deviations - Flutter uses a pragmatic mix of BLoC/Cubit, ChangeNotifier, and StatefulWidget. This deviates from strict full-BLoC architecture but keeps feature screens small for the exam demo. - Offline storage uses `SharedPreferences` queue instead of a full Drift database for cached entities. The dependency exists, but production-grade SQLite cache is not fully wired. - Backend FCM service is log-only until Firebase Admin credentials are provided. - Agora call flow is implemented at API and service level, but live RTC depends on a real Agora App ID. ## Remaining Evidence - Export rendered OOAD diagrams from the PlantUML files in this folder. - Run backend tests and archive JaCoCo/Surefire reports. - Run Flutter benchmarks on a physical Android device and add screenshots/results.