30 lines
2.1 KiB
Markdown
30 lines
2.1 KiB
Markdown
# 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.
|