2026-05-17 18:40:03 +07:00

2.1 KiB

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.