|
| 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