Skip to content

Commit 0b9c38f

Browse files
C4 design: containers diagram
1 parent 9c70a8e commit 0b9c38f

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
@startuml OSMTracker-Containers
2+
!pragma layout smetana
3+
!theme plain
4+
5+
' C4-PlantUML Container diagram
6+
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
7+
8+
LAYOUT_TOP_DOWN()
9+
10+
title OSMTracker for Android – Containers
11+
caption Containers inside OSMTracker for Android, and how they interact with external systems
12+
13+
Person(user, "OSM Mapper / Outdoor User", "Records GPS tracks and adds POIs while surveying")
14+
15+
System_Boundary(system, "OSMTracker for Android") {
16+
Container(mobileApp, "Android Mobile App", "Java", "UI and background logic to record tracks, manage POIs, capture media, and upload/export")
17+
ContainerDb(localDb, "Local Database", "SQLite", "Tracks, waypoints/POIs, settings, and related metadata")
18+
Container(fileStore, "Local File Storage", "Android filesystem", "GPX exports, photos, audio notes and temporary ZIPs")
19+
}
20+
21+
System_Ext(openStreetMap, "OpenStreetMap", "Uploads GPX traces; provides map tiles (HTTPS)")
22+
System_Ext(androidOS, "Android Operating System Services (GPS/Network/Media)", "Location updates; Camera/Microphone/Media APIs")
23+
System_Ext(githubApi, "GitHub API", "Upload trace files to a repository; list repos; open PRs")
24+
25+
' People -> App
26+
Rel(user, mobileApp, "Uses to start/stop tracking, add POIs, take photos/voice notes")
27+
28+
' Internal container relationships
29+
Rel(mobileApp, localDb, "Reads/Writes track and waypoint metadata")
30+
Rel(mobileApp, fileStore, "Reads/Writes GPX, photos, audio, ZIPs")
31+
32+
' External relationships
33+
Rel(mobileApp, androidOS, "Receives location updates; triggers media capture", "Android APIs")
34+
Rel(mobileApp, openStreetMap, "Uploads GPX traces and notes; fetches map tiles", "REST/HTTPS")
35+
Rel(mobileApp, githubApi, "Lists repos, uploads files, opens PRs", "HTTPS")
36+
37+
UpdateElementStyle(user, $fontColor="black", $bgColor="#CFE8FF", $borderColor="#3A8DFF")
38+
UpdateElementStyle(system, $fontColor="black", $bgColor="#C7F0D8", $borderColor="#1B8C3E")
39+
UpdateElementStyle(openStreetMap, $bgColor="#FFE4C4")
40+
UpdateElementStyle(androidOS, $bgColor="#FFE4C4")
41+
UpdateElementStyle(githubApi, $bgColor="#FFE4C4")
42+
UpdateElementStyle(localDb, $bgColor="#FFF9C4")
43+
UpdateElementStyle(fileStore, $bgColor="#FFF9C4")
44+
45+
SHOW_LEGEND()
46+
47+
footer Generated with C4-PlantUML.
48+
@enduml

0 commit comments

Comments
 (0)