From 5865951153dde12128756e135e61944e76a6e484 Mon Sep 17 00:00:00 2001 From: 5803024019 Date: Thu, 21 May 2026 09:11:49 +0700 Subject: [PATCH] docs(architecture): add design pattern UML diagrams --- ooad-docs/01_Builder_Pattern.puml | 94 +++++ ooad-docs/01_builder_pattern.png | Bin 0 -> 32463 bytes ooad-docs/02_Singleton_Pattern.png | Bin 0 -> 68336 bytes ooad-docs/02_Singleton_Pattern.puml | 110 +++++ ooad-docs/03_Facade_Pattern.png | Bin 0 -> 38387 bytes ooad-docs/03_Facade_Pattern.puml | 97 +++++ ooad-docs/04_Repository_Proxy_Pattern.png | Bin 0 -> 65059 bytes ooad-docs/04_Repository_Proxy_Pattern.puml | 101 +++++ ooad-docs/05_Observer_Pattern.png | Bin 0 -> 65662 bytes ooad-docs/05_Observer_Pattern.puml | 101 +++++ ooad-docs/06_Strategy_Pattern.png | Bin 0 -> 56267 bytes ooad-docs/06_Strategy_Pattern.puml | 99 +++++ .../07_ChainOfResponsibility_Pattern.png | Bin 0 -> 91411 bytes .../07_ChainOfResponsibility_Pattern.puml | 137 +++++++ ooad-docs/CLASS_MAPPING.md | 383 ++++++++++++++++++ 15 files changed, 1122 insertions(+) create mode 100644 ooad-docs/01_Builder_Pattern.puml create mode 100644 ooad-docs/01_builder_pattern.png create mode 100644 ooad-docs/02_Singleton_Pattern.png create mode 100644 ooad-docs/02_Singleton_Pattern.puml create mode 100644 ooad-docs/03_Facade_Pattern.png create mode 100644 ooad-docs/03_Facade_Pattern.puml create mode 100644 ooad-docs/04_Repository_Proxy_Pattern.png create mode 100644 ooad-docs/04_Repository_Proxy_Pattern.puml create mode 100644 ooad-docs/05_Observer_Pattern.png create mode 100644 ooad-docs/05_Observer_Pattern.puml create mode 100644 ooad-docs/06_Strategy_Pattern.png create mode 100644 ooad-docs/06_Strategy_Pattern.puml create mode 100644 ooad-docs/07_ChainOfResponsibility_Pattern.png create mode 100644 ooad-docs/07_ChainOfResponsibility_Pattern.puml create mode 100644 ooad-docs/CLASS_MAPPING.md diff --git a/ooad-docs/01_Builder_Pattern.puml b/ooad-docs/01_Builder_Pattern.puml new file mode 100644 index 0000000..a006b6c --- /dev/null +++ b/ooad-docs/01_Builder_Pattern.puml @@ -0,0 +1,94 @@ +' ============================================================ +' WALKGUIDE — DESIGN PATTERNS (GoF) +' Flutter × Spring Boot × In-Device AI +' Pattern 1 of 7: BUILDER (Creational) +' ============================================================ + +@startuml WalkGuide_01_Builder + +skinparam monochrome false +skinparam shadowing false +skinparam defaultFontName Arial +skinparam defaultFontSize 12 +skinparam roundCorner 10 +skinparam ArrowColor #555555 +skinparam ArrowThickness 1.2 + +skinparam class { + BackgroundColor #FAFAFA + BorderColor #AAAAAA + HeaderBackgroundColor #E8E8E8 + FontColor #222222 + StereotypeFontColor #666666 + AttributeFontColor #333333 +} + +skinparam package { + BackgroundColor #F5F5F5 + BorderColor #888888 + FontColor #333333 + FontStyle bold +} + +skinparam note { + BackgroundColor #FFFDE7 + BorderColor #F9A825 + FontColor #444444 + FontSize 11 +} + +' ============================================================ +' PATTERN 1 — BUILDER (Creational) +' ============================================================ + +package "① Builder Pattern [Creational]" #EEF6EE { + + interface "UserBuilder\n<>" as UserBuilder { + + email(String) : UserBuilder + + password(String) : UserBuilder + + displayName(String) : UserBuilder + + uniqueUserId(String) : UserBuilder + + fcmToken(String) : UserBuilder + + role(Role) : UserBuilder + + build() : User + } + + class "User\n<>" as User { + - id : Long + - email : String + - password : String + - displayName : String + - uniqueUserId : String + - fcmToken : String + - role : Role + - createdAt : Timestamp + + {static} builder() : UserBuilder + } + + class "FcmService\n<>" as FcmService { + + sendPushNotification(userId, payload) + + sendSosAlert(guardianId, lat, lng) + - buildMessage(token, title, body) : Message + } + + class "AuthService\n<>" as AuthService { + + register(RegisterRequest) : AuthDataResponse + + login(LoginRequest) : AuthDataResponse + - buildAuthResponse(user, tokens) : AuthDataResponse + } + + UserBuilder ..> User : <> + User ..> UserBuilder : <> + FcmService ..> "Firebase\nMessage.builder()" : uses + AuthService ..> "AuthDataResponse\n.builder()" : uses +} + +note bottom of UserBuilder + Lombok @Builder pada User.java + Memisahkan konstruksi objek kompleks + dari representasinya. Optional fields + (displayName, uniqueUserId, fcmToken) + tidak perlu constructor overloading. +end note + +@enduml diff --git a/ooad-docs/01_builder_pattern.png b/ooad-docs/01_builder_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..5b967d1b9ff203f1f28e1014062860f97c082e5f GIT binary patch literal 32463 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 literal 0 HcmV?d00001 diff --git a/ooad-docs/02_Singleton_Pattern.png b/ooad-docs/02_Singleton_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..06e26bc323b26323190a8ba120394d7701191b65 GIT binary patch literal 68336 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 ^Pa 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 Yq9!g})lJ38I0auf>" as GetIt { + - {static} _instance : GetIt + + {static} instance : GetIt + + registerSingleton(T) + + get() : T + } + + class "TtsService\n<>" as TtsService { + - {static} _instance : TtsService + - _flutterTts : FlutterTts + + speak(String text) + + speakImmediate(String text) + + stop() + + setLanguage(String lang) + } + + class "SttService\n<>" as SttService { + - {static} _instance : SttService + - _speechToText : SpeechToText + + startListening() + + stopListening() + + onResult : Stream + } + + class "YoloDetector\n<>" as YoloDetector { + - {static} _instance : YoloDetector + - _interpreter : Interpreter + - _labels : List + + loadModel() + + detect(CameraImage) : List + + isRunning : bool + } + + class "WebSocketService\n<>" as WebSocketService { + - {static} _instance : WebSocketService + - _stompClient : StompClient + + connect(String token) + + subscribe(String destination) + + disconnect() + } + + class "AgoraService\n<>" as AgoraService { + - {static} _instance : AgoraService + - _engine : RtcEngine + + joinChannel(token, channel, uid) + + leaveChannel() + + muteLocalAudio(bool) + } + + GetIt --> TtsService : registers &\nmanages + GetIt --> SttService : registers &\nmanages + GetIt --> YoloDetector : registers &\nmanages + GetIt --> WebSocketService : registers &\nmanages + GetIt --> AgoraService : registers &\nmanages +} + +note right of GetIt + injection_container.dart: + sl.registerSingleton(TtsService()) + sl.registerSingleton(YoloDetector()) + sl.registerSingleton(WebSocketService()) + Satu instance untuk seluruh lifecycle app. +end note + +@enduml diff --git a/ooad-docs/03_Facade_Pattern.png b/ooad-docs/03_Facade_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..c676d07b4792971df79a038b4d123e947cbbfc04 GIT binary patch literal 38387 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" as VoiceCommandHandler { + - _ttsService : TtsService + - _sttService : SttService + - _router : GoRouter + - _walkGuideBloc : WalkGuideBloc + - _sosBloc : SosBloc + - _notifBloc : NotificationBloc + + processText(String command) : void + - _matchCommand(String) : VoiceCommandKey? + - _executeCommand(VoiceCommandKey) : void + } + + class "WalkGuideBloc\n<>" as WalkGuideBlocFacade { + + onVoiceCommand(String text) + } + + class "GuardianDashboardService\n<>" as GuardianDashboardService { + - _locationService : LocationService + - _activityService : ActivityLogService + - _sosService : SosService + - _notifService : NotificationService + + getDashboard(guardianId) : DashboardResponse + } + + class "SttService " as SttServiceFacade <> + class "TtsService " as TtsServiceFacade <> + class "GoRouter\n<>" as GoRouterFacade <> + class "SosBloc " as SosBlocFacade <> + + class "LocationService\n<>" as LocationService <> + class "ActivityLogService\n<>" as ActivityService <> + class "SosService\n<>" as SosServiceFacade <> + + WalkGuideBlocFacade --> VoiceCommandHandler : processText() + VoiceCommandHandler --> SttServiceFacade : delegates + VoiceCommandHandler --> TtsServiceFacade : delegates + VoiceCommandHandler --> GoRouterFacade : delegates + VoiceCommandHandler --> SosBlocFacade : delegates + + GuardianDashboardService --> LocationService : aggregates + GuardianDashboardService --> ActivityService : aggregates + GuardianDashboardService --> SosServiceFacade : aggregates +} + +note right of VoiceCommandHandler + Client hanya panggil processText("start walkguide") + tanpa perlu tahu kompleksitas di baliknya: + matching phrase → execute command → TTS feedback + → route navigation → BLoC event dispatch +end note + +@enduml diff --git a/ooad-docs/04_Repository_Proxy_Pattern.png b/ooad-docs/04_Repository_Proxy_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..07aeff35ab0d6830e7c11bfb56742856ab236e5f GIT binary patch literal 65059 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

bbBw_fCzMBi%m57tZq`t%<2Kn8+a|pMHoh8 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 literal 0 HcmV?d00001 diff --git a/ooad-docs/04_Repository_Proxy_Pattern.puml b/ooad-docs/04_Repository_Proxy_Pattern.puml new file mode 100644 index 0000000..8ef1443 --- /dev/null +++ b/ooad-docs/04_Repository_Proxy_Pattern.puml @@ -0,0 +1,101 @@ +' ============================================================ +' WALKGUIDE — DESIGN PATTERNS (GoF) +' Flutter × Spring Boot × In-Device AI +' Pattern 4 of 7: REPOSITORY / PROXY (Structural) +' ============================================================ + +@startuml WalkGuide_04_Repository_Proxy + +skinparam monochrome false +skinparam shadowing false +skinparam defaultFontName Arial +skinparam defaultFontSize 12 +skinparam roundCorner 10 +skinparam ArrowColor #555555 +skinparam ArrowThickness 1.2 + +skinparam class { + BackgroundColor #FAFAFA + BorderColor #AAAAAA + HeaderBackgroundColor #E8E8E8 + FontColor #222222 + StereotypeFontColor #666666 + AttributeFontColor #333333 +} + +skinparam package { + BackgroundColor #F5F5F5 + BorderColor #888888 + FontColor #333333 + FontStyle bold +} + +skinparam note { + BackgroundColor #FFFDE7 + BorderColor #F9A825 + FontColor #444444 + FontSize 11 +} + +' ============================================================ +' PATTERN 4 — REPOSITORY / PROXY (Structural) +' ============================================================ + +package "④ Repository Pattern [Structural — Proxy]" #FFF3E0 { + + interface "WalkGuideRepository\n<>" as WalkGuideRepo { + + startSession() : Either + + stopSession() : Either + + logObstacle(ObstacleLogRequest) : Either + + getObstacleLogs() : Either> + } + + interface "ActivityLogRepository\n<>" as ActivityRepo { + + getLogs(page) : Either> + + savePending(ActivityLog) : Either + + syncPending() : Either + } + + class "WalkGuideRepositoryImpl\n<>" as WalkGuideRepoImpl { + - _remoteDataSource : WalkGuideRemoteDataSource + - _localDataSource : WalkGuideLocalDataSource + - _connectivity : ConnectivityPlus + + startSession() : Either + + logObstacle(req) : Either + - _isOnline() : bool + } + + class "ActivityLogRepositoryImpl\n<>" as ActivityRepoImpl { + - _remoteDataSource : ActivityRemoteDataSource + - _localDataSource : ActivityLocalDataSource + + getLogs(page) : Either + + syncPending() : Either + } + + class "WalkGuideRemoteDataSource\n<>" as RemoteDSWalk { + + startSession() : void + + logObstacle(req) : void + ' POST /api/v1/user/obstacle + } + + class "WalkGuideLocalDataSource\n<>" as LocalDSWalk { + + cacheObstacle(ObstacleLog) : void + + getPendingLogs() : List + ' Drift ORM — offline first + } + + WalkGuideRepo <|.. WalkGuideRepoImpl : implements + ActivityRepo <|.. ActivityRepoImpl : implements + WalkGuideRepoImpl --> RemoteDSWalk : online path + WalkGuideRepoImpl --> LocalDSWalk : offline path +} + +note bottom of WalkGuideRepoImpl + Proxy memutuskan sumber data: + if (isOnline) → fetch remote API + else → baca/tulis SQLite (Drift) + Domain layer tidak tahu perbedaannya. + dartz Either untuk typed error. +end note + +@enduml diff --git a/ooad-docs/05_Observer_Pattern.png b/ooad-docs/05_Observer_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..80d39d5a051876f036e46914699d5945bf2272e0 GIT binary patch literal 65662 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%0D`o!PM^V$CO1B`D$2pAzW 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 JtZo\n<>" as BlocSubject { + # stateController : StreamController + + {abstract} on(EventHandler) + + add(Event event) + + emit(State state) + + stream : Stream + } + + class "WalkGuideBloc\n<>" as WalkGuideBlocObs { + + on(_onStart) + + on(_onStop) + + on(_onFrame) + + on(_onObstacle) + - _yoloDetector : YoloDetector + - _ttsService : TtsService + - _hapticService : HapticService + } + + class "BlocBuilder\n<>" as BlocBuilderWidget { + + builder(ctx, state) : Widget + ' Rebuilds UI on every state emission + } + + class "BlocListener\n<>" as BlocListenerWidget { + + listener(ctx, state) : void + ' Side effects: TTS, haptic, navigation + } + + class "WebSocketService\n<>" as WebSocketObs { + - _stompClient : StompClient + + subscribe(destination) : Stream + + onLocationUpdate : StreamController + + onSosAlert : StreamController + + onNotification : StreamController + } + + class "GuardianMapScreen\n<>" as GuardianMapObs { + + onLocationUpdate(LocationData) + ' Updates flutter_map markers in real-time + } + + BlocSubject <|-- WalkGuideBlocObs : extends + WalkGuideBlocObs --> BlocBuilderWidget : emits state\n(rebuilds UI) + WalkGuideBlocObs --> BlocListenerWidget : emits state\n(side effects) + WebSocketObs --> GuardianMapObs : notifies\nlive location +} + +note left of WebSocketObs + Guardian subscribe topic: + /topic/location/{userId} — live map + /queue/sos/{guardianId} — SOS alert + /queue/notif/{userId} — notifications + STOMP over SockJS (stomp_dart_client) +end note + +@enduml diff --git a/ooad-docs/06_Strategy_Pattern.png b/ooad-docs/06_Strategy_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..47ce66a85713f8b5bd082867fccf910b5ac63163 GIT binary patch literal 56267 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 literal 0 HcmV?d00001 diff --git a/ooad-docs/06_Strategy_Pattern.puml b/ooad-docs/06_Strategy_Pattern.puml new file mode 100644 index 0000000..5e734bf --- /dev/null +++ b/ooad-docs/06_Strategy_Pattern.puml @@ -0,0 +1,99 @@ +' ============================================================ +' WALKGUIDE — DESIGN PATTERNS (GoF) +' Flutter × Spring Boot × In-Device AI +' Pattern 6 of 7: STRATEGY (Behavioral) +' ============================================================ + +@startuml WalkGuide_06_Strategy + +skinparam monochrome false +skinparam shadowing false +skinparam defaultFontName Arial +skinparam defaultFontSize 12 +skinparam roundCorner 10 +skinparam ArrowColor #555555 +skinparam ArrowThickness 1.2 + +skinparam class { + BackgroundColor #FAFAFA + BorderColor #AAAAAA + HeaderBackgroundColor #E8E8E8 + FontColor #222222 + StereotypeFontColor #666666 + AttributeFontColor #333333 +} + +skinparam package { + BackgroundColor #F5F5F5 + BorderColor #888888 + FontColor #333333 + FontStyle bold +} + +skinparam note { + BackgroundColor #FFFDE7 + BorderColor #F9A825 + FontColor #444444 + FontSize 11 +} + +' ============================================================ +' PATTERN 6 — STRATEGY (Behavioral) +' ============================================================ + +package "⑥ Strategy Pattern [Behavioral]" #E8F5E9 { + + interface "ObstacleAlertStrategy\n<>" as AlertStrategy { + + alert(DetectionResult result) : void + } + + class "TtsOnlyStrategy\n<>" as TtsOnly { + - _ttsService : TtsService + + alert(result) : void + ' TTS: "Caution! {label} {direction}. {distance}." + } + + class "TtsWithHapticStrategy\n<>" as TtsHaptic { + - _ttsService : TtsService + - _hapticService : HapticService + + alert(result) : void + ' TTS + vibration pattern + } + + class "HapticOnlyStrategy\n<>" as HapticOnly { + - _hapticService : HapticService + + alert(result) : void + ' Vibration only (silent environment) + } + + class "ObstacleAnalyzer\n<>" as ObstacleAnalyzerCtx { + - _strategy : ObstacleAlertStrategy + - _aiConfig : AiConfig + + setStrategy(ObstacleAlertStrategy) + + analyze(List) : void + + prioritize(results) : DetectionResult + + calculateDirection(bbox) : Direction + } + + class "AiConfig\n<>" as AiConfigStrategy { + + alertMode : AlertMode + + confidenceThreshold : double + + maxInferenceFps : int + + enabledLabels : List + } + + AlertStrategy <|.. TtsOnly : implements + AlertStrategy <|.. TtsHaptic : implements + AlertStrategy <|.. HapticOnly : implements + ObstacleAnalyzerCtx --> AlertStrategy : uses + ObstacleAnalyzerCtx ..> AiConfigStrategy : reads alertMode\nto select strategy +} + +note right of ObstacleAnalyzerCtx + Guardian dapat ganti strategy dari dashboard: + alertMode = TTS_ONLY | TTS_HAPTIC | HAPTIC_ONLY + PUT /api/v1/guardian/ai-config + Strategy dipilih runtime tanpa ubah kode utama. +end note + +@enduml diff --git a/ooad-docs/07_ChainOfResponsibility_Pattern.png b/ooad-docs/07_ChainOfResponsibility_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..07db7255faff882fa4baaacdea09a380b71b034e GIT binary patch literal 91411 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
^Wt{l_ zkI+qyWr^%Nv!PVdJ3J`+!JVOQrMS_>3#C}iQ$38v5o9mab z1k=Bf;^yGWT>X~1A_QW=_1Zyt+M0Y6p^;ZMJ@pj8EJ?ou%FRJjB#+RN6))Ci@G3w* zE`z!o)TtJ~VV19uf`kKcXtIy~05()orm>oqHj(-==JX=?Cw4`njFU8EOpi|p65*#C zSzFdfOyIecH}4_9zD&)c7G`uoo}8M&D>c6GhH=cAt?hV;SEzQjnFGXEHL zo3$nW+qWj;Y8qVnOCT6OE?ZwuL@lZ^0NW5M{kxP_1B)K6t(1)5JfW);;J-Lu4BXcs z{n0x}c+-ru2EbmapZ<^(G#th_6*)h@*AQ{a?&Qq%aGj!G+vfn+;8S`DKr%iO{VOo% z9@dUFyOJ_@A^%y&@(>S*e}fhIXvBaf%lUpk_g)SN@sQtwr!>89iD2XX1KWV9Hx^1v zEJKt47+zr!#iD&i}<$IK!U zw=ic{GGgE|pQM9tnGhFG^f`ef4m4kjYw~+T2}Eu%dHx|KR+J-|Qthfc9JMfqTf5(M zm|LDDSt&L!v=m$hV#<1+8{jn(f4s)72wuW0bToCynuIm>N;_gp9Rf)?Em6M*AJN8Xy460kH2EIxc?kS{!jLt>Pq6;F3aFWG69g~x#mB~SIt5}8A89sSmltyLhUMI#{ukZ}W(0Vo z4xUfFm~{Kt?CI&~A_L*$?QdbQq^TKZ5eYXd$9qQBV@FdQ-69n# zq4At$B&eqaI%#<2E-Yfn(T$I^8Q^FDJq^Z#;b3@(Y5sXD)DDl8$UnWv38odj4-U9L z%9~=Nd-7AsgGY~yj9lIi!VJZRp`om--0i{U5RMqm$@NE7=5zzU0xPU^G#LGNr6Ki^ zTdsF30l`)9E(YDJKxEGa2jcC>{;p>j|`WmQ!k ze*UC<}_Zf-)49??Rbot$>F znRWn0X>-+sC>DIzwp_xn0bHNw+L=t4M&V`C7YbIoy3}sI&HeWcebLb=r9TdBFUgAT zUmgB7NU5r7D(x@BQKd|WcPZtsW4mhbg6Ys{+%m{p`9 zmX(ziGSSG&F+|$H3jg#Kg2|!F;4RJtTPqn^$S}l);x&T|0$6Ys*9BF=3sOtI^9zUm zc)dpwOGY%75Z77M(&(_dzW&zH@u<1kcfT|x<$12Mc9UUNW+pE`e^0u955un7+Q-Zv z6BF$2q-zMiR(mK^o;j*EmfIB&$*wB3=PYA-iGYGiP~)ePCncC-_mvx85Z|9qrFf@>)6Arh6RK;=}x%R#ex zac4~WcN60c#DL~<@u2rz7|vf;Y2GiJySvxk+=(HW56SY2)V3V|?pr6j5PHEW(h z6+1H%zOv@#qU&gYS05v46uITa$!8D_)>k~Z&jK1=^ciu^8Ih&EHoPF zDLFZ<8wUfuy&rF?C@VV(P%2xQnzrh}o4%Kpa%c2pX&J-@AzKP%mfW!Q#e37{AIPQYS6~zzX+;FDePwAp=H3DaHc((#sOz;b{#O;y|!yyVoxmpxse7A-n-Kr7|LRT%w~_VN9o3cM$1 zsr3WZopy3^4;xY0hOY_RgWZhs3I2ylT@l9S8G%TK(z-2>Q-84{?K+IGwUi3?a-w)HP& z;J__2rV%XuFT0gpk)2T{o<5N}Y-U?)Y?tb^IcWC&pP}9{;LKL)pdbG2(wWW`)|E_OnXlP=hwyZ2e7L=Lbe_jSQXvwKeKv*~_ zCMM)rbp6y1${)=12Kub@h>#eSuS+)jySs1d87_?!wPNb|(|f^%0b(~{S{fS5U^I)1 zx0sa0=|Z^_gvhp8m{@aIu>!XS^`&9zx6MyxFJuG+A}8TTV3Ug<>;G#w``4=(3*so) z8q(--`Z1Wop0y7xyFvK656_uv5+!J0vc=at@1pELQ*`A#oRf~3iAnO1aL5yw0k>DD z4$h2uL@kTo*X&vyUNkP0;X#s0XN~Bqk;{ z=yE(!65Uk$fSjjTdg>?b$3GTyXszE{{&20@Zt4BP{6fB_V`;@ibkO7US}8Sox)5ag z&=nDEpuo`d+q8BDC2Tg86quR$zUh@H=xhg$IVgB0l}(EQw1z_5sc}h}-aAf1 zKNoktS4Es5nMkST3TTt*nIkBNJe-_-I()AOag7#}jHxy|GxP5~f7=y7?uPC?7JOgr z1eQA1xUM-XFm~hl`0JM=BUpMaB`w`^6qVeM*V)mjopTP>X2=G=f~$K(ZlXjyGJWFr zkSKNso62U;DAqezVAtB%+cFeCn-RfzNwR@&fG8<>Lom?a4`vZx=s>wqO)p?MFTkxN ztVLfYrL=K#(*g=Ds8Z9`?kDaK4qX;LR(L9^%AO3SEM&t+r@2K`AyIX8%OO?Y+S=OL zxia^Y-8&jxT7y8*8D;vnWttmsrpSDq+ks0<#yNe=7%cQ@97jhIlkmS_?PSA_9Q8XX z1N`jse9nHTujhp+pD7nP(O6PC=i%PkMR}6J9QHjB+KK#DW+pas%TmL+3f8r!$pI4j z_frzITmY3QgqURIJ2CEGS2@F9LQhUk3?d~$-}fFLSIEG!p6MvuTr^c&y!_5k=iJ;H z)))OEeUWt#gFyZ7>CAwb)CndFw{bNO$%LBvAo%(D(=dXNp_R7es2NLImhZ6ax0XNYvZF5j!_ol8oan`Fyy|NL=`cAmn5(i7&nO}1PHf4@Q z<(QqS_*LIMy9v;-bl!Q8q#|@D!WO52ve10l%+7|tN9XU-3LRH*(jFc9T*lBvA$eoF zcek#A*Z>WfOT#PhBH%)UeuL;G&bDEoJsi+gMR1c-?_1c|&|yijyoy60ee-e$`Y_5T$`qXFLG#M~uN8dk|`$NA6|SjQs2B0@?Q>*gvk9;)q|zee+c31y4psPHLad*}<_A^sOk z^A4FlhnVZD_X_U#v3)H%RZccq}r)%87`|#nXG5fQM%n?Gy`h^_|3W_-w%?Yee7fl|xQcgi;Ne_#;oS*S?gb3r0*MG{YAq6EA`K|y z<>eI#GqbWJ*(yH$w3)N@5CeNR2Zy^iz3fs}(Pq)tb{MDxjt-lD3yCtWeSX!NzUl_> zP{`CNchDCg>17AQE3CH0{Zu>T8`0wWEP#>l!?)KuIyy#18O--icw@%9x;TV{#wR8U z1XLKL*r)6&DR7Z>bsyZ+!I>cn9)#l~BRvdG)!J*82AITCJ4ejS%<*y=ZTL6-qG=T5 zsoeZ2UJyD1GZTg8O+zJ8uk15AH3@gJyNo!z7sM4u`y`V-mrsGHqembpduaaXs9Y`C zu1!%uMalYrY}s>sdD$eVk55>bU0Xw0dG6rEKo10GycvsW$eFC%TqQ~tFYt8Yl-}On zrdPu@m1E=M<2AtD<>aJ^coUJc<45p7q)kOzUPdN2Hy3n~wGwvC*VjMKQXe+nrOGJ$ z`kyPn*FnqJILqFRj>4Di0aIc^l5BW<28Xs!J;%d`_qfS?opPg%#&{Z$NJJe? z%yLt1!06Brlk}`Z?$zJ>7-hG({J=3KUA4;#eQEMi{(gR< zra9R;PEOAHP8bN|17-X>gw(wz5)%-E>x=||Tb8EF=&Op7(xRXW-Hw1CaPVA|Sqc)K zxY*e2f`cW@$5{kba&0XwUm`?JB8Lq8_!dY&01RBO-a&d!QDe+o+6+1UZZFD`zRLgse;*JhZ7bMg*e ze|Y2Qa0-mvi*ON^iwYD_dWiSulb*;vy!&|g#-vz4P*C>uPLc6oc3hMii+PXysm4G^ z@vk02xua-a7=P$F$+v=$E08PscmtRI^gqh=Dk15w?~St-aytcmJtJ`g1h_tF*`o-> z+&Q~S zS7&GbN>iW9i0oF=IwR3n>?UGViO0J(5bKWo`0*Ldm+tIX zJI2MlTv@rTUoGTv7+h&c9E1dT67aV4?ZM}QKA1HMsK+I-pDa6qzq*aG$*B=Omcq;md2^zl&O17w;c~_A@Ljtg*2%FmX?F;&EuM5k{2Bs|DRJOG)KI`@KyUE0WGd?sF zVu+24t6k2gF!lB8QxJ%;zKpx82$Q+Z29VEzF@`NR8E=PN!l0~YrIKLhx2^9v?OpdF zcpz6Rm}b638Mlh}*<@vDsmrggw--=}8CjQjf^A9k>FduW60oawd%%ZM8d>E0`fTs( z@u1FlqeH}605H{TB5GP%d0F9iRRN;0yqrC;5#_6?c@ZbQ0S8W_VXwA7m#vMB1U;w! zjnMmH+*%BN-pw{!nZN~UuS^tj&Cc&6Bq1XqkyP)X8|& z#m=sOc(|gd$ZBp`qBSk?>Ak--HCgtM1J+r^-*(F+>xdX=b#Z9gwiiam#_qr(#Qb#A z@5fs>FKZ^Q;!z_|XzEDT1*wD}P5lr#8*1sJ-+%aXSJDcW+LWXjeB&w<`qWU(eY)Y` zQ}Y#2+yhAL(@l0HT@Mf5C%Cv9u+e_}LMdim1Q((-e}Z4QFC zZsw?^t`lubF03jQS zcu3t`x||`OR5!J`w3JmMp5Q>P!#lLE#3sM*^TVWv>N$~U+;t3$w|t`A?=L6f$3GJ> zcyh+>JaBxzGx+oZth0%=ss4c%;(a6F%h#$DyApws;d+S)BcvoH4J{X4Gchp{tuB!Q zQB41>w3-@i{aoO~#l1ynD9?F#crXcY>(T={VY|w)X+t(PHb8Q^99iXb0c@6%IE7+v z5Hq`1PImV6O8Kdw$G|W{vqp5VCl^ook#?qsP7EwN8F$iav2;Pyyc}>7SVlTq@|U>xAvrA zIg^vdk6ouGpkQG;4oBNQj?PS1WZE>ijPoUhUc_9sT_dqvsi1PJqFMc+ri}01oT1{Y zDA?nj$hAw$z|jry@u<1(VVhjAju1LJs?4CCKUU+oZ+mV+hkqN^ou4FwgiKUB1E87O zYHw>soTDD}c9>UG^}V%ERjw&7cO-HBY7881200@C7dar^@apCpP~?Em^r>Uxj=4(v zEeN&?S+5_aysWHNIp2e*73=W){0Fu=_gw{}Cd@W9M(A|0(p>I!Mf2BSsK?9n22CHI zofj1W*D}t`IXjZ^C(WNw~!SIgEGQ8A~$N6GS098p@TEhgW8hd(bThkze{OOZImuS*ia z`OW#-`eq$`P17;Obrf0vccv02k?~fIex!xX^ zjKB6tkC$9dP0h6GMuv9xw5oXV7tr^fwG&hPMRr>Aew~YzRp_}LNC=?Ut0tE&*k0Un z0`d|Q7w>`U@}bN=`u(4FIa(7SD$h3HL-d3+ET@h(G%E;3|Lc_lOw>kNU?&!2V8%vcF;8q4Q~3>>MyHH=S6lBUISx3H%7nt^L- zY942hFQGzFGI{XmqBpLzSgFteV`aZ}dTR6{^MbxfaDLw!6qxGtT1$N{MBGk;Of4`P zz^`k34b$QqJ+`l!iTcKO#8fbY<#KvxX=2hcX9eJ4<2Y_h;54C-5~iL#ynsGoVLLs& zQKRc!h}7lV|{bLSP-o9B%uQwbY*OP zdS5^{Y??sY3o;dBLt_bkZX z(h?4Wbw9~skhah}ZnWWR)W?w?%zo@VaHx{Ds0|dq5>L*T^-?Z7cN>xew0*+9MkqOa z*MgV)k=FUm>CJ5Bq4TZ1nM))@4AgWjQ97~i&yBy|`&RR{DQUd%@R_zz_}ZE|$#o^* zfp|P2*#{VS3vTzuL93{3lJ42tL4eZ*44V#Vg3}IA_7q!Gzkrp%KsJq%gxphvdg#Q2 zz`#$5hTz)!r(m}aU(c8b@a$tSdunRB($eCmp%~L@f{;2vd{a4P#Wa=cpMUk3m!$ce zoU=Pr_-uVWABfFs_?lVRoydk}UdhP&_37E!*@rJ3>KGc#9zSCad2i-IyQQZ05h<0l zj|@gwrxmdOm{>bFeWLHbF^7GMLBH}SEJD6C99XsNR`CX1F)^|34F`1f+rW-b=-sZ1 zuGwk{;%HcAG*gbPHg(BSuwhsDoId1~k1)rXpfbjZgpF?TC@7KDT9&}n+iYTJ_Ht&H zffj|%T&%=gLfM3Wn(Qe{T8UADiv%T|^v346ILqcC~{2^Oq2Yp&`?PxfhCxJ+^VTbwVDb5`*(t#qsL$jF=TIV zzbBXTUk*XGt1O--tbLpx_CFofzqg;IrNSkcC} zx|GKvXR~8NvrxRTQ!e1qeH%qwG^W2ozxaD`>~HACojaJdCbP^-G<0+Xt)BO3l6-ta zEV~5tr*T#}s}1XWJGin3PO8umyTD;}?$>`Fh({#^V&|s25@*ty2^owjjer=#@JB$j zNf_6s{Cqh!mh@6W^B`l3I_`zcZ_N^Fc`_kO%Qt*W#7)5x0I7LSY=t|(KS2i6g>f;R zV?5z(lX8fY6^Oh$4R4@rpV+g)%6D%Z{&Sq*2rpjperTcy#RLO0S zZh%6*D9=}>BVg+a9f(IY3v%lsjGa~+08xQ0LgLGp5AQfO^z?LmT;hK>fsPoo_x4A!0>)ewZ%$4v{_M$v zlh&3Ng@8H)2K4P)ZLy^1YU=7Fs0mMXfSH?_VbgKmycEQv&wbYmE>`B;oV98l3e|Zh zK6$zt7CpG%paAL~06fd6AQrHtK~Zo&^4v6MgREfnu41m6OHO`YWn&5Ri-XWYNL7C+ zmy5fNqbw|Nh_?kY!xI}_3Uc3)sHPS){eW)=ER^Hhg4-G!2eqt}#u~hXAK7nVV}LNu zU;q`Jtapb5A>Hy^9KIkBdz?;Uk=SpRmzVVkX`Efx{Afvbm6Vl-lA8jCC3O^v1MYxS zPMXC}m!@C@r9w^LoipKbND&E3*Zs6HH332Fdk1QAFY~ag0PhJW=Y;gOrK zpp;JvLS@Ao=uHG;58di7QPioVP5cyv)tqZ${%EQ92CM`lYUzhupWMEq|D|Prq{RzP zrWg*z0bmX)-J`jAsz%ZY&LN^F7kuR}K}TbnQQPUcU$AJwn>%(xX{{J|u^Am=t)EcS zZT9X|1>>1A<`G6_XyoBEAP$9m#@TE55_K55Pr;ABZ+dR@U=hK`XcdX z1ojzbkI2I191(SoEGLbgrXhv8%^J2b+8f!7U>-?Sx$h;N zq>O_6DXn3gS6~qn52LayX;g4l2=w_f~CQ}TZ5}s zVKp4$IMQ9!vmXUEU`0U^MV$+#Z{7e}7+Domt0W4bt%ZQxxbvHFwrTFtCl`}&x{NJ% z=h6(v!O_v)iL88!`-9$EQ6uAJ?qDy>x*HhK4}DX6_6uDAUZzv87=tg zQOiF70jO)7n?b^sxyc+E$Z?IfnA3qT*S@6V5Pxp#gbr$1tr8+4B7l>cBD{oFb_rTA zi0g=5_8@{JDmX4FkFUttHyk+=6BpOo>GwT&EGKoB7?u?$lkPG0b|8_=lI$BqGJog% z(9G7rE2Ricl}3jEg?;?_7?A6~OF}YqE=F`c9HcryGS%@50wQwrI|LlSvx|4LLJN#o z7}MPRL{;?~F#GS(sOcEC`-0geg5(%gE=yS6{eOZK%a&^ZVg*XSTP`Nw{i#kJ^2Mhr-C?~V2XL&46g@Y`_u4pb`h?HuaeY9TZsK3j0|M0{o$mrXk4gn%*Ab zyB62IFLt>bbIdN?A&zE%#L5nSUjf*ds;cUlTdj;zSvn!?j;g@9cM(4m6ru5AnVXw? zdV)dIvqt8pv!fChtt~F@6CQ=}alm)pz?7+3;!90YdXX+LoedC!hCLX006QxVQC>uv ze-x-$XmB=*WucGwh)K4V8Up}Hk&lu;YxjZ2q5ls^@Z00C>;h*PgBp5MD8Qu$2csEK zfYGq%S=WoMau61KL+{UoZXeH-9G5W>-F_r}pD>iT$Q6Lpy<@LL85+=v5#joDniKL# zLSFS#fYw0W)OOm^MOVF|L|yQxu)O?9Bcw-%$r5DD-;*yJf|6-W>hE+vCohE3x%R?f zLnCQh&HmFx)VGSe2e&Acp-2D#5P?DV)rGbR%kE;YA2yL^Z;qtiLrrNHUG z3zKzE`|ellOuSeHaF0Kx!Oq5c{oCt=#T@56c{d_QQoVfG9eG8gW-*%Ea4y>=<5B_e zs#ju3i;uXtY)PuMdRn8{QCnnbTVfkFQ ze@5-E%?u0-0+8vo3ZT{sQ&a5_)WqHTRYm=E^5hN-*jdNCgA*Mh*kg7|vqoZY*frRH zDme&1R->;^7n5yV&;SA8ZkVy+T|++qTcTI{XpO-6lc4qqfD;l4cb5QESsF=Gn!E0o z%jo7R?0&uqYSl#I+8NmO8x$Q@4SItO%DZ11m)B2ytnF0fV*y2C`Ljp;f5_oIN~>Fz z78e)CFZV?F2VYJ81bZVXHmGcmuzoMng$#1H*1(~kR&v#IL!aw)u z(WctPa&{NdHA8VBPj9?DP{}$=4eakb5>PPd{egd3@*&!hxRBd6^3ByHf|uxWicO_@8}wlRtWX05ny&6vr4>bWFV&kKZHI*YUw8E34-fAb z&Zd7fhDoUe(UyUz+MQ!67)U)e9zaBJ0fxoTG z{r~YNIHfa42v=V;cO*`oP=k-~3|!ESsAl} zyrk9Dg!Oe$x(q6O4fS(rXd|~gq?0si|_VaRR&E(kLi4b{P0ZScjY>*-}q0rk@)HwqU)U0=;nX&2P> zZsaeN--^1*Fi}7O>Uv9na^g_eC>" as DioInterceptor { + + onRequest(options, handler) + + onResponse(response, handler) + + onError(error, handler) + } + + class "AuthInterceptor\n<>" as AuthInterceptor { + - _secureStorage : FlutterSecureStorage + + onRequest(options, handler) + ' Attach Bearer token ke setiap request + + onError(error, handler) + ' Jika 401: refresh token → retry request + } + + class "ErrorInterceptor\n<>" as ErrorInterceptor { + + onError(error, handler) + ' Map HTTP error codes → Failure domain objects + ' 401 → UnauthorizedFailure + ' 404 → NotFoundFailure + ' 500 → ServerFailure + } + + class "LogInterceptor\n<>" as LogInterceptorFlutter { + + onRequest(options, handler) + + onResponse(response, handler) + + onError(error, handler) + ' Print request/response untuk debugging + } + + class "ApiClient\n<>" as ApiClient { + - _dio : Dio + + get(url) : Response + + post(url, data) : Response + + put(url, data) : Response + ' Interceptors dieksekusi berurutan + } + + ' --- Backend: Spring Security Filter Chain --- + abstract class "OncePerRequestFilter\n<>" as SpringFilter { + + {abstract} doFilterInternal(req, res, chain) + + doFilter(req, res, chain) + } + + class "JwtAuthFilter\n<>" as JwtAuthFilter { + - _jwtUtil : JwtUtil + - _userDetailsService : UserDetailsService + + doFilterInternal(req, res, chain) + ' Extract JWT → validate → set SecurityContext + ' Jika invalid: 401 Unauthorized langsung + } + + class "SecurityConfig\n<>" as SecurityConfigChain { + + securityFilterChain(http) : SecurityFilterChain + ' /auth/** → permitAll + ' /api/v1/** → authenticated + ' ROLE_GUARDIAN vs ROLE_USER routing + } + + class "Controller\n<>" as ControllerChain { + + handleRequest(request) : ResponseEntity + ' Request tiba hanya jika lolos semua filter + } + + DioInterceptor <|-- AuthInterceptor : extends + DioInterceptor <|-- ErrorInterceptor : extends + DioInterceptor <|-- LogInterceptorFlutter : extends + + ApiClient --> AuthInterceptor : chain[0] + AuthInterceptor --> ErrorInterceptor : passes to\nchain[1] + ErrorInterceptor --> LogInterceptorFlutter : passes to\nchain[2] + + SpringFilter <|-- JwtAuthFilter : extends + JwtAuthFilter --> SecurityConfigChain : passes to + SecurityConfigChain --> ControllerChain : passes to\n(if authorized) +} + +note bottom of ApiClient + Flutter — Dio interceptor chain: + HTTP Request → AuthInterceptor → ErrorInterceptor → LogInterceptor → Response + Setiap handler bisa: proses, modifikasi, atau blok request. + AuthInterceptor otomatis refresh JWT jika expired (401). +end note + +note bottom of JwtAuthFilter + Backend — Spring Security filter chain: + HTTP Request → JwtAuthFilter → SecurityConfig → Controller + JwtAuthFilter extract & validasi Bearer token setiap request. + Jika invalid → langsung 401 tanpa lanjut ke controller. +end note + +@enduml diff --git a/ooad-docs/CLASS_MAPPING.md b/ooad-docs/CLASS_MAPPING.md new file mode 100644 index 0000000..3903fa7 --- /dev/null +++ b/ooad-docs/CLASS_MAPPING.md @@ -0,0 +1,383 @@ +# Mapping Class per Design Pattern — WalkGuide + +> Dokumen ini memetakan setiap class dari **Class Diagram WalkGuide** ke design pattern yang menggunakannya, beserta peran class tersebut dalam pattern dan justifikasi pemilihannya. + +--- + +## Daftar Isi + +1. [Matriks Ringkasan](#1-matriks-ringkasan) +2. [Builder Pattern](#2-builder-pattern--creational) +3. [Singleton Pattern](#3-singleton-pattern--creational) +4. [Facade Pattern](#4-facade-pattern--structural) +5. [Repository / Proxy Pattern](#5-repository--proxy-pattern--structural) +6. [Observer Pattern](#6-observer-pattern--behavioral) +7. [Strategy Pattern](#7-strategy-pattern--behavioral) +8. [Chain of Responsibility Pattern](#8-chain-of-responsibility-pattern--behavioral) + +--- + +## 1. Matriks Ringkasan + +| Pattern | Kategori | Class Utama (dari Class Diagram) | +|---------|----------|----------------------------------| +| Builder | Creational | `User`, `AuthService`, `FcmService`, `AuthDataResponse` | +| Singleton | Creational | `TtsService`, `SttService`, `YoloDetector`, `WebSocketService`, `AgoraService`, `HapticService` | +| Facade | Structural | `VoiceCommandHandler`, `GuardianDashboardService`, `GuardianController`, `VoiceCommandConfig` | +| Repository (Proxy) | Structural | `WalkGuideRepositoryImpl`, `ActivityLogRepositoryImpl`, `LocationRepositoryImpl`, `ObstacleLogRepository`, `ActivityLogRepository` | +| Observer | Behavioral | `WalkGuideBloc`, `SosBloc`, `WebSocketService`, `LocationBroadcaster`, `GuardianNotificationRepository` | +| Strategy | Behavioral | `ObstacleAnalyzer`, `AiConfig`, `AiConfigService`, `TtsService`, `HapticService` | +| Chain of Responsibility | Behavioral | `ApiClient`, `AuthInterceptor`, `ErrorInterceptor`, `JwtAuthFilter`, `SecurityConfig`, `JwtUtil`, `CustomUserDetailsService` | + +--- + +## 2. Builder Pattern — Creational + +### Justifikasi + +Entitas `User` memiliki **8 field** — tidak semua selalu terisi. Field `uniqueUserId` hanya ada untuk `ROLE_USER`, `fcmToken` di-update setiap login, dan `displayName` bersifat opsional. Tanpa Builder, constructor membutuhkan 8 parameter yang rawan salah urutan dan sulit dibaca. `FcmService` membangun payload Firebase `Message` secara kondisional (beberapa field hanya ada saat SOS, yang lain hanya saat notifikasi biasa) — Builder sangat cocok untuk kasus ini. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `User` | Backend — Entity | **Product** — objek yang dibangun step-by-step via `@Builder` Lombok | Entity block | +| `AuthService` | Backend — Service | **Director/Client** — memanggil `User.builder()...build()` saat register | Service block | +| `FcmService` | Backend — Service | **Client** — memanggil `Message.builder()` Firebase untuk bangun payload FCM | Service block | +| `AuthDataResponse` | Backend — DTO | **Product 2** — response token dibangun via `AuthDataResponse.builder()` | DTO block | +| `RefreshToken` | Backend — Entity | **Product 3** — dibuat via builder saat generate refresh token | Entity block | + +### Relasi Antar Class + +``` +AuthService ──uses──► User.builder() + .email() + .password() + .displayName() + .uniqueUserId() + .role() + .build() + │ + ▼ + User (Entity tersimpan ke UserRepository) + +FcmService ──uses──► Message.builder() + .setToken() + .setNotification() + .putData("type", "SOS_ALERT") + .setAndroidConfig() + .build() + │ + ▼ + FirebaseMessage (dikirim via FCM) +``` + +--- + +## 3. Singleton Pattern — Creational + +### Justifikasi + +WalkGuide memiliki beberapa **resource-heavy services** yang harus ada tepat satu instance: +- `YoloDetector` memuat model `.tflite` ±6 MB ke memori — jika dibuat ulang setiap buka layar akan terjadi memory leak dan delay 2–3 detik. +- `WebSocketService` mempertahankan satu koneksi STOMP ke backend — multiple instance menyebabkan event diterima dobel. +- `TtsService` mengelola engine TTS — dua instance berbicara bersamaan akan saling menimpa. +- `AgoraService` mengelola RTC engine — satu per sesi, tidak boleh duplikat. + +Semua di-register via `GetIt` service locator sebagai singleton agar seluruh widget tree mendapat instance yang sama. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `TtsService` | Flutter — Service | **Singleton** — satu TTS engine untuk seluruh app | Services block | +| `SttService` | Flutter — Service | **Singleton** — satu STT listener always-on | Services block | +| `YoloDetector` | Flutter — AI | **Singleton** — satu model inference engine (6 MB) | AI block | +| `WebSocketService` | Flutter — Service | **Singleton** — satu koneksi STOMP ke backend | Services block | +| `AgoraService` | Flutter — Service | **Singleton** — satu RTC engine untuk VoIP call | Services block | +| `HapticService` | Flutter — Service | **Singleton** — satu haptic controller | Services block | +| `GetIt` (injection_container) | Flutter — DI | **ServiceLocator** — mengelola lifecycle semua singleton | Bootstrap | + +### Relasi Antar Class + +``` +injection_container.dart + │ + ├─ sl.registerSingleton(TtsService()) + ├─ sl.registerSingleton(SttService()) + ├─ sl.registerSingleton(YoloDetector()) + ├─ sl.registerSingleton(WebSocketService()) + ├─ sl.registerSingleton(AgoraService()) + └─ sl.registerSingleton(HapticService()) + +WalkGuideBloc ──sl()──► YoloDetector (instance sama) +WalkGuideBloc ──sl()───► TtsService (instance sama) +VoiceCommandHandler ──sl()──► TtsService (instance sama, bukan baru) +``` + +--- + +## 4. Facade Pattern — Structural + +### Justifikasi + +Memproses satu perintah suara `"Send SOS"` membutuhkan koordinasi: `SttService`, command matcher, `SosBloc`, GPS, `TtsService` feedback, dan `GoRouter` navigasi — 6 subsystem berbeda. Tanpa Facade, setiap Widget harus inject dan tahu semua 6 dependency tersebut. `VoiceCommandHandler` menyederhanakan ini menjadi satu panggilan `processText(string)`. + +Di backend, `GuardianController` membutuhkan data dari 5 repository berbeda untuk render dashboard Guardian. `GuardianDashboardService` menjadi Facade yang mengagregasi semuanya, sehingga controller cukup memanggil satu method. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `VoiceCommandHandler` | Flutter — Service | **Facade** — menyembunyikan koordinasi 6 subsystem voice | Services block | +| `WalkGuideBloc` | Flutter — BLoC | **Client** — hanya tahu `processText()`, tidak tahu subsystem | BLoC block | +| `TtsService` | Flutter — Service | **Subsystem** — salah satu dari yang dikoordinasikan | Services block | +| `SttService` | Flutter — Service | **Subsystem** — salah satu dari yang dikoordinasikan | Services block | +| `VoiceCommandConfig` | Backend — Entity | **Data** — konfigurasi perintah suara yang dibaca Facade | Entity block | +| `VoiceCommandKey` | Backend — Enum | **Enum** — key identifier 14 perintah suara | Enum block | +| `GuardianDashboardService` | Backend — Service | **Facade** — mengagregasi data dari 5 repository | Service block | +| `GuardianController` | Backend — Controller | **Client** — cukup panggil `getGuardianHomeData()` | Controller block | +| `LocationHistoryRepository` | Backend — Repository | **Subsystem** — data lokasi terakhir User | Repository block | +| `SosEventRepository` | Backend — Repository | **Subsystem** — data SOS aktif User | Repository block | +| `ActivityLogRepository` | Backend — Repository | **Subsystem** — log aktivitas User | Repository block | +| `GuardianNotificationRepository` | Backend — Repository | **Subsystem** — jumlah notif belum dibaca | Repository block | +| `PairingRelationRepository` | Backend — Repository | **Subsystem** — ambil userId yang dipasangkan ke Guardian | Repository block | + +### Relasi Antar Class + +``` +Widget ──processText("send sos")──► VoiceCommandHandler (Facade) + │ + ┌───────────────┼───────────────┐ + ▼ ▼ ▼ + SttService SosBloc TtsService + (stop listen) (TriggerSos) (speak feedback) + +GuardianController ──getGuardianHomeData()──► GuardianDashboardService (Facade) + │ + ┌───────────────────────┼───────────────────────┐ + ▼ ▼ ▼ + LocationHistoryRepo SosEventRepo ActivityLogRepo + (last location) (active SOS) (recent activity) +``` + +--- + +## 5. Repository / Proxy Pattern — Structural + +### Justifikasi + +WalkGuide harus berjalan **offline-first** — tunanetra sering berada di area tanpa sinyal. Log obstacle, activity log, dan update lokasi harus tetap tersimpan lokal (SQLite/Drift) saat offline, kemudian di-sync ke backend saat koneksi kembali. `WalkGuideBloc` tidak boleh tahu apakah data berasal dari API atau SQLite — keputusan ini ada di Repository Implementation yang bertindak sebagai Proxy. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `WalkGuideRepository` (interface) | Flutter — Domain | **Subject Interface** — kontrak yang dipakai BLoC | Domain layer | +| `WalkGuideRepositoryImpl` | Flutter — Data | **Proxy** — memutuskan API vs SQLite | Data layer | +| `ActivityLogRepository` (interface) | Flutter — Domain | **Subject Interface** | Domain layer | +| `ActivityLogRepositoryImpl` | Flutter — Data | **Proxy** | Data layer | +| `ObstacleLogRepository` | Backend — Repository | **Real Subject** — JPA repository backend | Repository block | +| `ActivityLogRepository` (JPA) | Backend — Repository | **Real Subject** — JPA repository backend | Repository block | +| `LocationHistoryRepository` | Backend — Repository | **Real Subject** — JPA repository backend | Repository block | +| `ObstacleLog` | Backend — Entity | **Data** — entitas yang disimpan/diambil | Entity block | +| `ActivityLog` | Backend — Entity | **Data** — entitas yang disimpan/diambil | Entity block | +| `LocationHistory` | Backend — Entity | **Data** — riwayat lokasi User | Entity block | + +### Relasi Antar Class + +``` +WalkGuideBloc + │ + │ depends on interface only + ▼ +WalkGuideRepository (interface) + │ implements + ▼ +WalkGuideRepositoryImpl (Proxy) + │ + ├─ if (isOnline) ──► REST API ──► ObstacleLogRepository (JPA) + │ │ + │ ▼ + │ ObstacleLog (Entity) + │ + └─ else ────────► SQLite/Drift ──► Local cache + (Drift ORM) +``` + +--- + +## 6. Observer Pattern — Behavioral + +### Justifikasi + +Saat YOLO mendeteksi obstacle, puluhan komponen perlu bereaksi: overlay bounding box, TTS feedback, haptic, backend log, dan debug panel. Menghubungkan semua ini secara langsung akan menciptakan tight coupling. BLoC pattern adalah implementasi Observer murni — `WalkGuideBloc` sebagai Subject, widget sebagai Observer. Ketika state baru di-emit, semua subscriber otomatis bereaksi tanpa BLoC perlu tahu siapa saja Observer-nya. + +Untuk Guardian, `WebSocketService` adalah Observer terhadap backend STOMP — Guardian menerima update lokasi User real-time tanpa polling. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `WalkGuideBloc` | Flutter — BLoC | **Concrete Subject** — emit state saat obstacle terdeteksi | BLoC block | +| `SosBloc` | Flutter — BLoC | **Concrete Subject** — emit state saat SOS triggered | BLoC block | +| `BlocBuilder` (widget) | Flutter — UI | **Observer** — rebuild UI saat state berubah | Widget layer | +| `BlocListener` (widget) | Flutter — UI | **Observer** — side effects tanpa rebuild UI | Widget layer | +| `WebSocketService` | Flutter — Service | **Subject** — Stream lokasi, SOS, notifikasi | Services block | +| `LocationBroadcaster` | Backend — Component | **Publisher** — push event ke STOMP topics | Backend block | +| `GuardianNotificationRepository` | Backend — Repository | **Data Store** — notifikasi yang perlu di-broadcast | Repository block | +| `SosEventRepository` | Backend — Repository | **Data Store** — SOS event yang di-broadcast ke Guardian | Repository block | +| `ActivityLogService` | Backend — Service | **Publisher** — broadcast activity log via LocationBroadcaster | Service block | + +### Relasi Antar Class + +``` +YoloDetector ──detect()──► DetectionResult + │ + WalkGuideBloc (Subject) + emit(ObstacleDetected) + │ + ┌───────────────┼───────────────┐ + ▼ ▼ ▼ + BlocBuilder BlocListener BlocConsumer + (UI rebuild) (side effects) (both) + overlay bbox SnackBar error combined + +Backend STOMP push: +LocationBroadcaster ──/topic/location/{userId}──► WebSocketService (Subject) + │ + ┌─────────────┼─────────────┐ + ▼ ▼ ▼ + GuardianMap GuardianDash NotifScreen + (live marker) (SOS alert) (new notif) +``` + +--- + +## 7. Strategy Pattern — Behavioral + +### Justifikasi + +Guardian perlu mengkonfigurasi **cara WalkGuide memperingatkan** User tentang obstacle. Ada tiga mode: TTS saja (cocok untuk lingkungan tenang), TTS + haptic (default untuk sebagian besar situasi), haptic saja (lingkungan bising seperti pasar atau stasiun). Logika ini bisa berubah kapan saja dari dashboard Guardian tanpa restart app. Strategy Pattern memungkinkan penggantian algoritma alert di runtime tanpa mengubah `ObstacleAnalyzer` sedikit pun. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `ObstacleAlertStrategy` (interface) | Flutter — AI | **Strategy Interface** — kontrak `alert(result)` | Domain/AI layer | +| `TtsOnlyStrategy` | Flutter — AI | **Concrete Strategy 1** — hanya TTS | Strategy layer | +| `TtsWithHapticStrategy` | Flutter — AI | **Concrete Strategy 2** — TTS + haptic | Strategy layer | +| `HapticOnlyStrategy` | Flutter — AI | **Concrete Strategy 3** — hanya haptic | Strategy layer | +| `ObstacleAnalyzer` | Flutter — AI | **Context** — menyimpan dan mendelegasikan ke strategy | AI block | +| `AiConfig` | Backend — Entity | **Config Source** — menyimpan `alertMode` yang dipilih Guardian | Entity block | +| `AiConfigService` | Backend — Service | **Config Manager** — update config dan kirim FCM ke User | Service block | +| `AiConfigRepository` | Backend — Repository | **Persistence** — simpan/ambil konfigurasi AI | Repository block | +| `TtsService` | Flutter — Service | **Subsystem** — dipakai oleh TtsOnly dan TtsWithHaptic | Services block | +| `HapticService` | Flutter — Service | **Subsystem** — dipakai oleh TtsWithHaptic dan HapticOnly | Services block | +| `FcmService` | Backend — Service | **Notifier** — kirim FCM ke User saat config berubah | Service block | + +### Relasi Antar Class + +``` +Guardian PUT /guardian/ai-config + │ + ▼ +AiConfigService ──updateConfig()──► AiConfig (simpan alertMode) + │ + └──► FcmService.sendToUser() ──► FCM ke User: "ai_config_updated" + │ + Flutter terima FCM + │ + switch (config.alertMode) + ┌─────────┼──────────┐ + ▼ ▼ ▼ + TtsOnly TtsHaptic HapticOnly + Strategy Strategy Strategy + │ + ObstacleAnalyzer.setStrategy(new) + │ + _strategy.alert(detectionResult) +``` + +--- + +## 8. Chain of Responsibility Pattern — Behavioral + +### Justifikasi + +Setiap HTTP request dari Flutter perlu melewati beberapa proses berurutan: (1) menambahkan JWT, (2) auto-refresh jika expired, (3) error mapping terpusat, (4) logging. Tanpa Chain of Responsibility, setiap Repository harus menulis ulang logika ini. Di backend, setiap request perlu (1) divalidasi JWT, (2) dicek role-nya sebelum mencapai controller bisnis. Chain memungkinkan setiap handler fokus pada tanggung jawabnya sendiri dan meneruskan ke handler berikutnya. + +### Class yang Terlibat + +| Class | Layer | Peran dalam Pattern | Lokasi di Class Diagram | +|-------|-------|---------------------|-------------------------| +| `Interceptor` (abstract Dio) | Flutter — Network | **Abstract Handler** | Network layer | +| `AuthInterceptor` | Flutter — Network | **Concrete Handler 1** — inject token, auto-refresh | Network layer | +| `ErrorInterceptor` | Flutter — Network | **Concrete Handler 2** — map HTTP error ke Failure | Network layer | +| `LogInterceptor` | Flutter — Network | **Concrete Handler 3** — logging request/response | Network layer | +| `ApiClient` | Flutter — Network | **Chain Builder** — mengatur urutan dan membangun chain | Network layer | +| `OncePerRequestFilter` (Spring) | Backend — Security | **Abstract Handler** | Security block | +| `JwtAuthFilter` | Backend — Security | **Concrete Handler 1** — validasi JWT, set SecurityContext | Security block | +| `SecurityConfig` | Backend — Security | **Concrete Handler 2** — RBAC routing per URL pattern | Security block | +| `JwtUtil` | Backend — Security | **Component** — dipakai JwtAuthFilter untuk decode/validate | Security block | +| `CustomUserDetailsService` | Backend — Security | **Component** — dipakai JwtAuthFilter untuk load user dari DB | Security block | +| `UserRepository` | Backend — Repository | **Data Source** — dipakai CustomUserDetailsService | Repository block | +| `GlobalExceptionHandler` | Backend — Exception | **Error Handler** — menangkap exception dari seluruh chain | Exception block | + +### Relasi Antar Class + +``` +Flutter HTTP Request + │ + ▼ +[Chain[0]] AuthInterceptor ──onRequest()──► inject "Bearer {token}" ──► next() + │ + ▼ +[Chain[1]] ErrorInterceptor ──onRequest()──► pass-through ──► next() + │ + ▼ +[Chain[2]] LogInterceptor ──onRequest()──► log URL + body ──► next() + │ + ▼ (HTTP over network) + │ +[Backend] JwtAuthFilter ──doFilterInternal()──► validate JWT ──► chain.doFilter() + │ + ▼ +[Backend] SecurityConfig ──securityFilterChain()──► cek role ──► pass + │ + ▼ +[Backend] Controller ──handleRequest()──► proses bisnis + │ + ▼ +[Backend] GlobalExceptionHandler ──► tangkap exception jika ada + │ + ▼ (HTTP Response) + │ +[Chain[2]] LogInterceptor.onResponse() ──► log response + │ + ▼ +[Chain[1]] ErrorInterceptor.onResponse() ──► map error jika 4xx/5xx + │ + ▼ +[Chain[0]] AuthInterceptor.onError() ──► jika 401: refresh token + retry + │ + ▼ +Repository / BLoC menerima Either +``` + +--- + +## Ringkasan Jumlah Class per Pattern + +| Pattern | Jumlah Class Terlibat | Layer | +|---------|----------------------|-------| +| Builder | 5 class | Backend | +| Singleton | 7 class | Flutter | +| Facade | 13 class | Flutter + Backend | +| Repository/Proxy | 10 class | Flutter + Backend | +| Observer | 9 class | Flutter + Backend | +| Strategy | 11 class | Flutter + Backend | +| Chain of Responsibility | 12 class | Flutter + Backend | +| **Total unik** | **±40 class** | **Full Stack** | + +> Semua class di atas dapat ditelusuri langsung di **Class Diagram WalkGuide** (file PDF yang dilampirkan). \ No newline at end of file