Skip to content

Bounded Contexts

This diagram mirrors the formal CML model and renders in GitHub, VS Code (Mermaid extension), or any Markdown viewer:

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#a5d8ff', 'primaryBorderColor': '#4a9eed', 'primaryTextColor': '#1e1e1e', 'lineColor': '#4a9eed'}, 'flowchart': {'rankSpacing': 1, 'nodeSpacing': 30, 'padding': 4}}}%%
flowchart TB
subgraph Shared["Shared"]
direction TB
subgraph SR1[" "]
direction LR
IAC["Identity & Access"] ~~~ PREF["Preferences"] ~~~ AUDIT["Audit Log"]
end
subgraph SR2[" "]
direction LR
SP1["Identity & Access"] ~~~ WF["Workflow Management"] ~~~ SP2["Identity & Access"]
end
SR1 ~~~ SR2
end
subgraph Core["Core Domains"]
direction TB
subgraph CR1[" "]
direction LR
WM["Workforce Management"] ~~~ PM["Productivity"] ~~~ SC["Safety & Compliance"]
end
subgraph CR2[" "]
direction LR
WMon["Worker Monitoring"] ~~~ AM["Asset Management"] ~~~ BS["Billing & Subscription"]
end
CR1 ~~~ CR2
end
subgraph Support["Support Domains"]
direction TB
subgraph SUP1[" "]
direction LR
AR["Analytics & Reporting"] ~~~ NOTIF["Notifications"] ~~~ COMM["Communication"]
end
subgraph SUP2[" "]
direction LR
EX["Exception Management"] ~~~ PRED["Prediction Engine"] ~~~ INT["Integrations"]
end
SUP1 ~~~ SUP2
end
GSEP1["<br/><br/><br/>"]
GSEP2["<br/><br/><br/>"]
Shared ~~~ GSEP1
GSEP1 ~~~ Core
Core ~~~ GSEP2
GSEP2 ~~~ Support
classDef shared fill:#a5d8ff,stroke:#6d28d9,stroke-width:2px,color:#1e1e1e,font-size:15px,padding:12px
classDef core fill:#a5d8ff,stroke:#4a9eed,stroke-width:2px,color:#1e1e1e,font-size:15px,padding:12px
classDef support fill:#d0bfff,stroke:#f08c00,stroke-width:2px,color:#1e1e1e,font-size:15px,padding:12px
classDef spacer fill:#e5dbff,stroke:#e5dbff,color:#e5dbff,font-size:15px,padding:12px
classDef gap fill:none,stroke:none,color:transparent
class IAC,PREF,AUDIT,WF shared
class WM,PM,SC,WMon,AM,BS core
class AR,NOTIF,COMM,EX,PRED,INT support
class SP1,SP2 spacer
class GSEP1,GSEP2 gap
style Shared fill:#e5dbff,stroke:#6d28d9,stroke-width:2px,color:#6d28d9
style Core fill:#dbe4ff,stroke:#4a9eed,stroke-width:2px,color:#2563eb
style Support fill:#fff3bf,stroke:#f08c00,stroke-width:2px,color:#d97706
style SR1 fill:#e5dbff,stroke:none,color:#e5dbff
style SR2 fill:#e5dbff,stroke:none,color:#e5dbff
style CR1 fill:#dbe4ff,stroke:none,color:#dbe4ff
style CR2 fill:#dbe4ff,stroke:none,color:#dbe4ff
style SUP1 fill:#fff3bf,stroke:none,color:#fff3bf
style SUP2 fill:#fff3bf,stroke:none,color:#fff3bf
ContextTypeDescription
WorkforceManagementContextCoreCompanies, Projects, Profiles, Licenses, Audit Logs
ProductivityContextCoreProject Plans, Tasks, Daily Work Logs, Productivity Analytics
SafetyAndComplianceContextCoreSafety Templates, Forms, Anomaly Detection, Compliance Monitoring — Checkingmate & Saffer apps
WorkerMonitoringContextCoreActive Worker Tracking, Presence, MIA Alerts, Site Biometrics
AssetManagementContextCoreAsset Registry, Equipment Tracking, Assignment
BillingAndSubscriptionContextCoreSubscription Management, Billing, Plan Entitlements
AnalyticsAndReportingContextSupportCross-domain Dashboards, Reports, Exports, Predictive Analytics
NotificationsContextSupportWhatsApp, Email, SMS
IdentityAndAccessContextSharedAuthentication & Authorization (Flask, Keycloak)

Angelis Platform — Bounded Context Map

Download the full Context Mapper model: angelis-context-map.cml

If diagram generation fails, the Context Map Generator requires:

  1. Graphviz — Install and add to PATH:

    • macOS: brew install graphviz
    • Linux: apt install graphviz or yum install graphviz
    • Verify: dot -V
  2. IDE setup:

  3. Alternative: Context Mapper CLI (no IDE needed):

    Terminal window
    # Download: https://repo1.maven.org/maven2/org/contextmapper/context-mapper-cli/6.12.0/
    ./cm validate -i docs/angelis-context-map.cml
    ./cm generate -i docs/angelis-context-map.cml -g context-map -o docs/src-gen
    ./cm generate -i docs/angelis-context-map.cml -g plantuml -o docs/src-gen

    (Requires Java 17+ and Graphviz for context-map generator.)