-
Notifications
You must be signed in to change notification settings - Fork 3k
Expand file tree
/
Copy patharchitecture.dot
More file actions
70 lines (59 loc) · 1.9 KB
/
architecture.dot
File metadata and controls
70 lines (59 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
digraph Architecture {
rankdir=TB;
node [shape=box, style=rounded];
subgraph "cluster_firebase" {
label="Firebase Cloud";
style="filled";
color="lightgrey";
MarkersDB [label="Firebase Realtime Database
/markers"];
AnimationDB [label="Firebase Realtime Database
/animation"];
}
subgraph "cluster_android" {
label="Android App";
style="filled";
color="lightgrey";
subgraph "cluster_ui" {
label="UI Layer (View)";
A [label="MainActivity"];
B [label="MapScreen Composable"];
C [label="TopAppBar Actions
(toggleAnimation, seedDatabase, clearMarkers, takeControl)"];
D [label="GoogleMap Composable"];
}
subgraph "cluster_vm" {
label="State & Logic Layer (ViewModel)";
VM [label="MarkersViewModel"];
}
subgraph "cluster_data" {
label="Data Layer";
FC [label="FirebaseConnection"];
SD [label="ShapeData"];
M [label="MarkerData Model"];
}
subgraph "cluster_di" {
label="Dependency Injection";
Hilt [label="Hilt/Dagger"];
}
}
// --- Interactions ---
A -> B;
B -> C;
B -> D [label="Renders Markers"];
C -> VM [label="Calls function"];
VM -> FC [label="Uses"];
VM -> SD [label="Reads shape vectors"];
// Controller writes to Firebase
VM -> AnimationDB [label="Writes animation state"];
VM -> MarkersDB [label="Writes marker data"];
// All clients listen for real-time updates
MarkersDB -> FC [label="Real-time updates", style=dashed];
AnimationDB -> FC [label="Real-time updates", style=dashed];
FC -> VM;
VM -> B [label="Updates StateFlow"];
VM -> M [label="Uses Model"];
// --- DI Graph ---
Hilt -> FC [label="Injects"];
Hilt -> VM [label="Injects"];
}