add YOLOv8 TFLite model asset
This commit is contained in:
parent
c566c026cd
commit
dee6a56140
229
TODO.md
Normal file
229
TODO.md
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
# WalkGuide Final Readiness TODO
|
||||||
|
|
||||||
|
Last audit date: 2026-05-17
|
||||||
|
Source documents checked: `FULL_FLOW_ARCHITECTURE.md`, `FINAL_EXAM_GUIDE.md`, repository files.
|
||||||
|
|
||||||
|
## Legend
|
||||||
|
|
||||||
|
- ✅ Done / evidence exists in repository
|
||||||
|
- ⚠️ Partial / implemented but incomplete, demo-mode, or missing final evidence
|
||||||
|
- ❌ Missing / no repository evidence found
|
||||||
|
- 🔎 Verify locally / cannot be proven from files alone
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Current Verification Status
|
||||||
|
|
||||||
|
- ✅ Git status was clean and synced before this TODO audit.
|
||||||
|
- ✅ Backend Flyway migrations exist from `V1` through `V16`.
|
||||||
|
- ✅ OOAD diagram files exist in `ooad-docs/diagrams`.
|
||||||
|
- ✅ Backend k6 result files exist in `walkguide-backend/demo/k6-tests/k6-results`.
|
||||||
|
- ⚠️ k6 local smoke evidence exists, but strict production benchmark targets are not met under the current local-backend + remote-PostgreSQL setup.
|
||||||
|
- ❌ Flutter analyzer could not be verified inside this Codex environment because `flutter` is not available on PATH here.
|
||||||
|
- 🔎 Run this locally to confirm Dart errors:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd "D:\CodeSpace\Final Project Gabungan - Broken Test\walkguide-mobile\walkguide_app"
|
||||||
|
flutter pub get
|
||||||
|
flutter analyze
|
||||||
|
```
|
||||||
|
|
||||||
|
- 🔎 Run this locally to confirm backend tests:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd "D:\CodeSpace\Final Project Gabungan - Broken Test\walkguide-backend\demo"
|
||||||
|
mvn test
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full Flow Architecture Checklist
|
||||||
|
|
||||||
|
### Backend Architecture
|
||||||
|
|
||||||
|
- ✅ Spring Boot backend structure exists: `controller`, `service`, `repository`, `entity`, `dto`, `config`, `security`, `exception`.
|
||||||
|
- ✅ PostgreSQL is configured through Flyway migrations.
|
||||||
|
- ✅ `spring.jpa.hibernate.ddl-auto=validate` is configured.
|
||||||
|
- ✅ JWT access-token flow exists.
|
||||||
|
- ✅ Refresh token entity/repository/migration exists.
|
||||||
|
- ✅ RBAC roles exist for `ROLE_USER` and `ROLE_GUARDIAN`.
|
||||||
|
- ✅ Consistent API response envelope exists through `ApiResponse`.
|
||||||
|
- ✅ OpenAPI YAML exists at `walkguide-backend/demo/src/main/resources/openapi.yaml`.
|
||||||
|
- ✅ Swagger dependency/config exists.
|
||||||
|
- ✅ WebSocket/STOMP config exists.
|
||||||
|
- ✅ Location broadcaster exists.
|
||||||
|
- ✅ Call controller/service/token response exists.
|
||||||
|
- ✅ Pairing, activity log, obstacle log, location, notification, SOS, settings, AI config, voice command, hardware shortcut, and geofence backend classes exist.
|
||||||
|
- ✅ Unit and integration test classes exist.
|
||||||
|
- ✅ JaCoCo report exists in `walkguide-backend/demo/target/site/jacoco`.
|
||||||
|
- ✅ k6 scripts and result reports exist.
|
||||||
|
- ⚠️ Firebase push notification is still log-only in `FcmService`; real Firebase Admin SDK sending is commented out.
|
||||||
|
- ⚠️ Agora token support exists, but `agora.app-id` and `agora.app-certificate` are empty in `application.properties`.
|
||||||
|
- ⚠️ Actuator metrics evidence is incomplete; k6 parsed reports show JVM heap as `N/A`.
|
||||||
|
- ⚠️ k6 evidence exists, but the current local smoke profile is relaxed because remote PostgreSQL makes auth/location latency too high for the strict target.
|
||||||
|
- ❌ Environment-separated configs are missing: no `application-dev.yml` / `application-prod.yml` evidence found.
|
||||||
|
- ❌ Secrets are still hardcoded in `application.properties` (`spring.datasource.password`, `jwt.secret`).
|
||||||
|
- ❌ Firebase Admin credential file is missing: `src/main/resources/firebase/google-services-admin.json`.
|
||||||
|
|
||||||
|
### Flutter Architecture
|
||||||
|
|
||||||
|
- ✅ Flutter project exists with core app, router, injection container, services, and feature screens.
|
||||||
|
- ✅ Dynamic server URL support exists through `SharedPreferences`.
|
||||||
|
- ✅ GoRouter is present.
|
||||||
|
- ✅ Dio dependency is present.
|
||||||
|
- ✅ `flutter_bloc` dependency is present.
|
||||||
|
- ✅ Secure storage dependency and service files exist.
|
||||||
|
- ✅ TTS, STT, camera, tflite, Agora, Firebase Messaging, local notifications, map, geolocation, STOMP, connectivity, vibration, audio, and recording dependencies exist.
|
||||||
|
- ✅ More than 6 screens exist.
|
||||||
|
- ✅ Widget, unit, and integration test files exist.
|
||||||
|
- ⚠️ Clean Architecture is only partially applied. Some features use `domain/data/presentation`, but many screens still live as direct StatefulWidget/service-driven screens.
|
||||||
|
- ⚠️ State management is mixed. BLoC/Cubit exists, but many screens still use direct `StatefulWidget` state and service calls.
|
||||||
|
- ⚠️ Typed failure support exists, but raw UI/service `try/catch` usage still appears in presentation-facing code and should be reviewed against the exam penalty.
|
||||||
|
- ⚠️ Offline queue service exists, but full Drift offline-first cache/sync for core entities is not proven by file structure.
|
||||||
|
- ⚠️ Integration tests exist, but comments indicate stub/self-contained flows; the exam requires E2E against the live Spring Boot API.
|
||||||
|
- ❌ YOLO model file is missing: `assets/models/yolov8n.tflite`.
|
||||||
|
- ❌ Formal i18n files are missing: no `.arb` localization files found.
|
||||||
|
- ❌ Firebase app config is missing: no `google-services.json` / `GoogleService-Info.plist` found.
|
||||||
|
- ❌ Flutter Agora App ID is still placeholder: `YOUR_AGORA_APP_ID`.
|
||||||
|
- ❌ Release APK artifact was not found in the repository.
|
||||||
|
- ❌ Flutter physical-device benchmark evidence is missing.
|
||||||
|
|
||||||
|
### End-to-End Feature Flows
|
||||||
|
|
||||||
|
- ✅ Register and login flow is implemented in backend and Flutter screens.
|
||||||
|
- ✅ Pairing invite/respond/status backend and Flutter screens exist.
|
||||||
|
- ✅ WalkGuide screen and obstacle analyzer code exist.
|
||||||
|
- ⚠️ WalkGuide real AI detection is incomplete until `yolov8n.tflite` is added and verified on device.
|
||||||
|
- ⚠️ Location update flow exists, but k6 evidence shows high latency with remote DB.
|
||||||
|
- ⚠️ Guardian dashboard exists, including location/status-style UI, but full live realtime validation still needs manual demo evidence.
|
||||||
|
- ⚠️ Call Guardian flow exists at code/API level, but real call requires Agora credentials and device testing.
|
||||||
|
- ⚠️ Guardian notification flow exists, but real push delivery requires Firebase Admin + mobile Firebase config.
|
||||||
|
- ⚠️ SOS flow exists, but urgent real push is still log-only until Firebase is enabled.
|
||||||
|
- ⚠️ Geofence backend/service/UI elements exist, but final live geofence-exit notification evidence is still needed.
|
||||||
|
- ❌ Voice note storage/upload pipeline is not proven. Notification DTO supports voice note fields, but no durable audio upload/storage evidence was found.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Final Exam Guide Checklist
|
||||||
|
|
||||||
|
### Pillar 1: OOAD
|
||||||
|
|
||||||
|
- ✅ Use case diagram file exists.
|
||||||
|
- ✅ Class diagram file exists.
|
||||||
|
- ✅ ERD diagram file exists.
|
||||||
|
- ✅ Component diagram file exists.
|
||||||
|
- ✅ At least 3 sequence diagrams exist: login, pairing, SOS.
|
||||||
|
- ✅ State machine diagram exists for SOS event.
|
||||||
|
- ✅ Design pattern document exists: `ooad-docs/DESIGN_PATTERNS.md`.
|
||||||
|
- ✅ Traceability audit document exists: `ooad-docs/TRACEABILITY_AUDIT.md`.
|
||||||
|
- ⚠️ Pattern documentation should still be checked for exact code line references and per-pattern UML context diagrams.
|
||||||
|
- ⚠️ Class diagram vs final code alignment should be reviewed once all missing/demo-mode features are finalized.
|
||||||
|
|
||||||
|
### Pillar 2: Flutter Mobile
|
||||||
|
|
||||||
|
- ✅ Flutter 3.x project structure exists.
|
||||||
|
- ✅ Navigation with GoRouter exists.
|
||||||
|
- ✅ JWT login/register API consumption exists.
|
||||||
|
- ✅ Dynamic backend URL entry exists.
|
||||||
|
- ✅ Custom/reusable shared widgets exist.
|
||||||
|
- ✅ Advanced feature evidence exists for real-time/WebSocket and push-notification plumbing.
|
||||||
|
- ⚠️ Clean Architecture is not strict across all features.
|
||||||
|
- ⚠️ BLoC is not consistently used throughout the UI.
|
||||||
|
- ⚠️ Offline local persistence is dependency-level/partial, not fully proven as an offline-first entity cache.
|
||||||
|
- ⚠️ Error handling is not fully isolated from UI; raw `try/catch` usage should be audited.
|
||||||
|
- ⚠️ Unit tests exist, but coverage of all use cases/repositories should be verified.
|
||||||
|
- ⚠️ Widget tests exist for at least 5 screens/components, but they should be run locally.
|
||||||
|
- ⚠️ Integration tests exist, but they appear stub-based instead of live-backend E2E.
|
||||||
|
- ❌ Physical Android profile-mode benchmark package is missing:
|
||||||
|
- Memory baseline
|
||||||
|
- Memory leak check
|
||||||
|
- Frame rate/jank
|
||||||
|
- CPU profile/flame graph
|
||||||
|
- Client-side API latency logs
|
||||||
|
- Cold start trace
|
||||||
|
- APK size analysis
|
||||||
|
- ❌ Mid-sprint vs final Flutter benchmark delta table is missing.
|
||||||
|
- ❌ Release APK file with required naming is missing.
|
||||||
|
|
||||||
|
### Pillar 3: Spring Boot Backend
|
||||||
|
|
||||||
|
- ✅ Java/Spring Boot backend exists.
|
||||||
|
- ✅ Controller-Service-Repository layering exists.
|
||||||
|
- ✅ PostgreSQL and Flyway migrations exist.
|
||||||
|
- ✅ Spring Security/JWT/RBAC exists.
|
||||||
|
- ✅ Versioned `/api/v1/...` endpoints exist.
|
||||||
|
- ✅ Bean Validation DTOs exist.
|
||||||
|
- ✅ Global exception handler exists.
|
||||||
|
- ✅ OpenAPI YAML exists.
|
||||||
|
- ✅ Swagger UI config exists.
|
||||||
|
- ✅ More than 10 REST endpoints exist.
|
||||||
|
- ✅ Unit test files exist for service layer.
|
||||||
|
- ✅ Controller/integration test files exist.
|
||||||
|
- ✅ JaCoCo report exists.
|
||||||
|
- ✅ k6 scripts and exported results exist.
|
||||||
|
- ⚠️ Testcontainers dependency and integration base exist, but final `mvn test` should be run locally before claiming green.
|
||||||
|
- ⚠️ k6 local smoke reports exist, but strict exam load benchmark target is not met in the current environment:
|
||||||
|
- Target: 50 concurrent users, 5 minutes
|
||||||
|
- Target throughput: at least 100 req/s
|
||||||
|
- Target p95 latency: less than 500 ms
|
||||||
|
- Target error rate: less than 1%
|
||||||
|
- ⚠️ DB query time and JVM heap are not fully captured in k6 reports; parsed results show JVM heap as `N/A`.
|
||||||
|
- ❌ Environment-separated config files are missing.
|
||||||
|
- ❌ Hardcoded secrets remain in config.
|
||||||
|
- ❌ Real Firebase Admin push notification is not enabled.
|
||||||
|
|
||||||
|
### Repository / Submission Deliverables
|
||||||
|
|
||||||
|
- ⚠️ Repository appears to be a combined workspace, while the guide asks for separate Flutter and Spring Boot repositories.
|
||||||
|
- ⚠️ GitHub workflow exists, but only `update-badge.yml` was found; Flutter/backend CI workflow evidence is missing.
|
||||||
|
- ❌ Branch protection / 3+ merged PR evidence is not in repository.
|
||||||
|
- ❌ APK artifact was not found.
|
||||||
|
- ❌ Written report PDF of 25+ pages was not found.
|
||||||
|
- ❌ Presentation deck/video link evidence was not found.
|
||||||
|
- ❌ Team contribution table verified against commit history was not found.
|
||||||
|
- ❌ README still needs final submission polish: setup, environment variables, APK link, benchmark links, and known limitations.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dart Analyzer / Red Problem Checklist
|
||||||
|
|
||||||
|
Because `flutter analyze` cannot run in this Codex environment, treat this as the required local verification checklist:
|
||||||
|
|
||||||
|
- 🔎 Run `flutter analyze` from `walkguide-mobile/walkguide_app`.
|
||||||
|
- 🔎 If analyzer reports zero issues, update this section to ✅.
|
||||||
|
- 🔎 If analyzer reports red errors, fix those first before lint/style warnings.
|
||||||
|
- 🔎 Re-run `flutter analyze` after every fix.
|
||||||
|
- 🔎 Run Flutter tests after analyzer is clean:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd "D:\CodeSpace\Final Project Gabungan - Broken Test\walkguide-mobile\walkguide_app"
|
||||||
|
flutter test
|
||||||
|
```
|
||||||
|
|
||||||
|
Current evidence-based status:
|
||||||
|
|
||||||
|
- ⚠️ Cannot honestly claim zero Dart analyzer errors from this environment.
|
||||||
|
- ✅ Previous known blocking Dart errors were addressed in source files before this audit.
|
||||||
|
- 🔎 Final analyzer proof must come from your local Flutter SDK terminal output.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Highest Priority Fix Order
|
||||||
|
|
||||||
|
1. ❌ Add missing `assets/models/yolov8n.tflite` and verify WalkGuide AI inference on a physical Android device.
|
||||||
|
2. ❌ Replace Flutter Agora placeholder and backend empty Agora credentials, then test real call flow.
|
||||||
|
3. ❌ Enable real Firebase push notification:
|
||||||
|
- Add Firebase mobile config.
|
||||||
|
- Add Firebase Admin config.
|
||||||
|
- Replace log-only backend sending with real `FirebaseMessaging`.
|
||||||
|
4. ⚠️ Run and save final `flutter analyze` output.
|
||||||
|
5. ⚠️ Run and save final backend `mvn test` / JaCoCo output.
|
||||||
|
6. ❌ Produce Flutter physical-device benchmark evidence and delta table.
|
||||||
|
7. ⚠️ Improve k6 evidence:
|
||||||
|
- Keep local smoke results as implementation evidence.
|
||||||
|
- Add a note explaining remote DB latency.
|
||||||
|
- If required by lecturer, run strict benchmark on deployed backend with realistic infra.
|
||||||
|
8. ❌ Build final APK with required naming.
|
||||||
|
9. ❌ Finish final report PDF and presentation evidence.
|
||||||
|
10. ⚠️ Update README files with final setup, environment, APK, Swagger, benchmark, and known limitation links.
|
||||||
|
|
||||||
BIN
walkguide-mobile/walkguide_app/assets/models/yolov8n.tflite
Normal file
BIN
walkguide-mobile/walkguide_app/assets/models/yolov8n.tflite
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user