workspace extends ../model.dsl { name "Retail Labs - Ecentive Main Console System" description "The software architecture of the Retail Labs E-Centive MC System." model { !ref ecentiveMCSystem { ecentiveWebApplication = container "E-Centive Web Application" "Laravel" "Web Browser" ecentiveMobileApp = container "E-centive Mobile App" "Flutter" "Mobile App" ecentiveApiApplication = container "E-Centive API Application" "Provides Core E-Centive functionality via an API." "PHP" { loginController = component "Login Controller" "Handles authenticating users for the application." "PHP Controller" resetPasswordController = component "Reset Password Controller" "This controller is responsible for handling password reset requests." "PHP Controller" tags "E-Centive Group" } database = container "Database" "Stores user registration information, logs, etc." "MySQL Database Schema" "Database" tags "E-Centive Group" } # relationships to/from containers ecentiveSupportAgent -> ecentiveWebApplication "Visits ecentive.com using" "HTTPS" ecentiveSupportAgent -> ecentiveMobileApp "Views and submits claims using" # relationships to/from components ecentiveWebApplication -> loginController "Makes API calls to" "HTTPS" ecentiveWebApplication -> resetPasswordController "Makes API calls to" "HTTPS" ecentiveMobileApp -> loginController "Makes API calls to" "HTTPS" ecentiveMobileApp -> resetPasswordController "Makes API calls to" "HTTPS" resetPasswordController -> database "Reads from and writes to" } views { systemcontext ecentiveMCSystem "SystemContext" { include * animation { ecentiveMCSystem ecentiveSupportAgent ecentiveSPSystem } autoLayout description "The system context diagram for the E-Centive MC System." properties { structurizr.groups false } } container ecentiveMCSystem "Containers" { include * animation { ecentiveSupportAgent ecentiveSPSystem ecentiveWebApplication ecentiveMobileApp ecentiveApiApplication database } autoLayout description "The container diagram for the E-Centive MC System." } component ecentiveApiApplication "Components" { include * animation { ecentiveWebApplication ecentiveMobileApp database ecentiveSPSystem loginController resetPasswordController } autoLayout description "The component diagram for the E-Centive MC API Application." } styles { element "Person" { background #555555 color #ffffff shape Person } element "Web Browser" { shape WebBrowser } element "Mobile App" { shape MobileDeviceLandscape } element "Database" { shape Cylinder } element "E-Centive Group" { background #CC6CE7 color #ffffff shape RoundedBox } } } }