workspace "IXOlist | Token Sale | Business processes @ Seller" { !identifiers hierarchical model { properties { "structurizr.groupSeparator" "/" } div-dir = person "Division Director" { } div-acct = person "Division Accountant" { } purchaser = softwareSystem "Purchaser" { account-c = container "Account C" { tags "Main Account" } account-d = container "Account D" { tags "Main Account" } tags "Architectures softwaresystem" } seller = softwareSystem "Seller" { account-a = container "Account A" { tags "Main Account" } account-b = container "Account B" { tags "Main Account" } tags "Architectures softwaresystem" } group "IXOlist" { token_sale = softwaresystem "Token Sale" { description "Business processes @ Seller" tags "Business processes softwaresystem" url "https://ixolist.netlify.app/apps/token-sale/" } } group "IXOlist" { group "Token Sale" { token-sale = softwareSystem "Toke Sale" { } token-sale-create = softwareSystem "Advertisement Create" { group "Actions" { ts-create-create = container "Create" { tags "Button state" } } group "Transaction Data" { ts-create-submit = container "Submit" { tags "Button" } } group "Smart Contract" { ts-create-token-sale = container "Token Sale smart contract" { tags "Contract" url "https://app-test.diakod.com/share/43/diagrams#ixolist-token_sale-smart_contract-systemlandscape" } } group "Seller" { ts-create-division = container "Division" { tags "input field" } } group "Offered" { ts-create-offered = container "Offered" { tags "input field" } ts-create-offered-smart_contract = container "Token Smart contract" { tags "input field" } ts-create-offered-token = container "Token" { tags "input field" } } group "Prices" { ts-create-prices-smart_contract = container "Smart contract" { tags "input field" } ts-create-prices-token = container "Prices token" { tags "input field" } ts-create-value = container "Value" { tags "input field" } } tags "Architectures softwaresystem" } token-sale-edit = softwareSystem "Advertisement Edit" { group "Actions" { ts-edit-edit = container "Edit" { tags "Button state" } } group "Transaction Data" { ts-edit-submit = container "Submit" { tags "Button" } } group "Smart Contract" { ts-edit-token-sale = container "Token Sale smart contract" { tags "Contract" url "https://app-test.diakod.com/share/43/diagrams#ixolist-token_sale-smart_contract-systemlandscape" } } group "General" { ts-edit-remove = container "Remove" { tags "input field" } } group "Offered" { ts-edit-offered = container "Offered" { tags "input field" } } group "Prices" { ts-edit-smart_contract = container "Smart contract" { tags "input field" } ts-edit-token = container "Prices token" { tags "input field" } ts-edit-value = container "Value" { tags "input field" } } tags "Architectures softwaresystem" } token-sale-start = softwareSystem "Advertisement Publish" { group "Operation" { ts-start-publish = container "Publish" { tags "Button" } ts-start-transfer = container "Transfer to Deposit" { tags "Button" } } group "Transaction Data" { ts-start-submit = container "Submit" { tags "Button" } } group "Smart Contract" { ts-start-token-sale = container "Token Sale smart contract" { tags "Contract" url "https://app-test.diakod.com/share/43/diagrams#ixolist-token_sale-smart_contract-systemlandscape" } ts-start-deposit = container "Depository smart contract" { tags "Contract" url "https://app-test.diakod.com/share/45/diagrams#ixolist-depository-smart_contract-systemlandscape" } } tags "Architectures softwaresystem" } token-sale-buy = softwareSystem "Advertisement" { group "Actions" { ts-buy-buy = container "Buy" { tags "Button state" } } group "Transaction Data" { ts-buy-submit = container "Submit" { tags "Button" } } group "Smart Contract" { ts-buy-token-sale = container "Token Sale smart contract" { tags "Contract" url "https://app-test.diakod.com/share/43/diagrams#ixolist-token_sale-smart_contract-systemlandscape" } ts-buy-deposit = container "Deposit smart contract" { tags "Contract" } } group "Create Proposal" { ts-buy-proposal = container "Proposal" { tags "input field" } } } web3 = softwaresystem "Web3 authentication tool" { group "Transaction-request" { web3-sign = container "Sign" { tags "Button" } } tags "Architectures softwaresystem" } msig = softwareSystem "Msig" { tags "Contract" } governance = softwareSystem "Governance" { group "Operations" { gov-approve = container "Aprove" { tags "Button" } gov-execute = container "Execute" { tags "Button" } } } } } "div-dir" -> "seller.account-a" "div-dir" -> "purchaser.account-c" "div-acct" -> "seller.account-b" "div-acct" -> "purchaser.account-d" "seller.account-a" -> "token-sale-create.ts-create-create" "seller.account-a" -> "token-sale-edit.ts-edit-edit" "seller.account-a" -> "token-sale-start.ts-start-publish" "seller.account-b" -> "token-sale-start.ts-start-transfer" "purchaser.account-c" -> "token-sale-buy.ts-buy-buy" "purchaser.account-c" -> "governance.gov-approve" "purchaser.account-c" -> "governance.gov-execute" "purchaser.account-d" -> "governance.gov-approve" "token-sale-create.ts-create-create" -> "token-sale-create.ts-create-division" "token-sale-create.ts-create-division" -> "token-sale-create.ts-create-offered-smart_contract" "token-sale-create.ts-create-offered-smart_contract" -> "token-sale-create.ts-create-offered-token" "token-sale-create.ts-create-offered-token" -> "token-sale-create.ts-create-offered" "token-sale-create.ts-create-offered" -> "token-sale-create.ts-create-prices-smart_contract" "token-sale-create.ts-create-prices-smart_contract" -> "token-sale-create.ts-create-prices-token" "token-sale-create.ts-create-prices-token" -> "token-sale-create.ts-create-value" "token-sale-create.ts-create-value" -> "token-sale-create.ts-create-submit" "token-sale-create.ts-create-submit" -> "web3.web3-sign" "UAL + ESR" "web3.web3-sign" -> "token-sale-create.ts-create-token-sale" "Execute transaction" "web3.web3-sign" -> "token-sale-edit.ts-edit-token-sale" "Execute transaction" "web3.web3-sign" -> "token-sale-start.ts-start-deposit" "Execute transaction" "web3.web3-sign" -> "token-sale-start.ts-start-token-sale" "Execute transaction" "web3.web3-sign" -> "msig" "Execute transaction" "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-remove" "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-smart_contract" "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-offered" "token-sale-edit.ts-edit-remove" -> "token-sale-edit.ts-edit-submit" "token-sale-edit.ts-edit-remove" -> "web3.web3-sign" "UAL + ESR" "token-sale-edit.ts-edit-smart_contract" -> "token-sale-edit.ts-edit-token" "token-sale-edit.ts-edit-token" -> "token-sale-edit.ts-edit-value" "token-sale-edit.ts-edit-value" -> "token-sale-edit.ts-edit-submit" "token-sale-edit.ts-edit-offered" -> "token-sale-edit.ts-edit-submit" "token-sale-edit.ts-edit-submit" -> "web3.web3-sign" "UAL + ESR" "token-sale-start.ts-start-publish" -> "web3.web3-sign" "UAL + ESR" "token-sale-start.ts-start-transfer" -> "web3.web3-sign" "UAL + ESR" "token-sale-buy.ts-buy-buy" -> "token-sale-buy.ts-buy-proposal" "token-sale-buy.ts-buy-proposal" -> "token-sale-buy.ts-buy-submit" "token-sale-buy.ts-buy-submit" -> "web3.web3-sign" "UAL + ESR" "msig" -> "token-sale-buy.ts-buy-deposit" "token-sale-buy.ts-buy-deposit" -> "seller.account-b" "token-sale-buy.ts-buy-deposit" -> "purchaser.account-d" "governance.gov-approve" -> "web3.web3-sign" "UAL + ESR" "governance.gov-execute" -> "web3.web3-sign" #!include \ # "./4-code/index.dsl" } views { systemLandscape "ixolist-token_sale-business_processes-systemlandscape" { title "IXOlist | Token Sale | Business processes @ Seller" include "token_sale" } #!include \ #"./4-code/index.dsl" dynamic "token-sale-create" "ixolist-token-sale-business_process-token_sale-advertisement-create-dynamic" { title "IXOlist | Token Sale | Advertisement - create" "div-dir" -> "seller.account-a" "seller.account-a" -> "token-sale-create.ts-create-create" "token-sale-create.ts-create-create" -> "token-sale-create.ts-create-division" "token-sale-create.ts-create-division" -> "token-sale-create.ts-create-offered-smart_contract" "token-sale-create.ts-create-offered-smart_contract" -> "token-sale-create.ts-create-offered-token" "token-sale-create.ts-create-offered-token" -> "token-sale-create.ts-create-offered" "token-sale-create.ts-create-offered" -> "token-sale-create.ts-create-prices-smart_contract" "token-sale-create.ts-create-prices-smart_contract" -> "token-sale-create.ts-create-prices-token" "token-sale-create.ts-create-prices-token" -> "token-sale-create.ts-create-value" "token-sale-create.ts-create-value" -> "token-sale-create.ts-create-submit" "token-sale-create.ts-create-submit" -> "web3.web3-sign" "web3.web3-sign" -> "token-sale-create.ts-create-token-sale" } dynamic "token-sale-edit" "ixolist-token-sale-business_process-token_sale-advertisement-edit-dynamic" { title "IXOlist| Token Sale | Advertisement - edit" "div-dir" -> "seller.account-a" "seller.account-a" -> "token-sale-edit.ts-edit-edit" { { "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-remove" } { "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-smart_contract" } { "token-sale-edit.ts-edit-edit" -> "token-sale-edit.ts-edit-offered" } } "token-sale-edit.ts-edit-smart_contract" -> "token-sale-edit.ts-edit-token" "token-sale-edit.ts-edit-token" -> "token-sale-edit.ts-edit-value" { { "token-sale-edit.ts-edit-offered" -> "token-sale-edit.ts-edit-submit" } { "token-sale-edit.ts-edit-value" -> "token-sale-edit.ts-edit-submit" } } { { "token-sale-edit.ts-edit-submit" -> "web3.web3-sign" } { "token-sale-edit.ts-edit-remove" -> "web3.web3-sign" } } "web3.web3-sign" -> "token-sale-edit.ts-edit-token-sale" } dynamic "token-sale-start" "ixolist-token-sale-business_process-token_sale-advertisement-publish-dynamic" { title "IXOlist | Token Sale | Advertisement - publish" "div-acct" -> "seller.account-b" "seller.account-b" -> "token-sale-start.ts-start-transfer" "token-sale-start.ts-start-transfer" -> "web3.web3-sign" "web3.web3-sign" -> "token-sale-start.ts-start-deposit" "div-dir" -> "seller.account-a" "seller.account-a" -> "token-sale-start.ts-start-publish" "token-sale-start.ts-start-publish" -> "web3.web3-sign" "web3.web3-sign" -> "token-sale-start.ts-start-token-sale" } styles { element "Contract" { shape "Hexagon" width "350" height "100" background "white" # opacity "100" } element "Contract" { border "solid" strokeWidth "5" stroke "#9011bb" } element "Contract" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Contract" { fontSize "26" color "#9011bb" } element "input field" { shape "box" width "600" height "150" background "white" opacity "100" } element "input field" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "input field" { description true metadata true # icon } element "input field" { shape "box" width "600" height "150" background "white" opacity "100" } element "input field" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "input field" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "input field" { fontSize "24" color "black" colour "black" } element "input field" { properties { name value } } element "input field" { fontSize "24" color "black" colour "black" } element "Main Account" { shape "Circle" width "200" height "75" background "#007acc" # opacity "100" } element "Main Account" { border "solid" strokeWidth "0" #stroke "black" } element "Main Account" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Main Account" { fontSize "18" color "white" } element "Account" { shape "Circle" width "200" height "75" background "white" # opacity "100" } element "Account" { border "solid" strokeWidth "0" stroke "black" } element "Account" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Account" { fontSize "18" color "black" } element "Type Transfer" { shape "box" width "450" height "305" background "white" opacity "100" } element "Type Transfer" { border "dashed" strokeWidth "0" stroke "black" } element "Type Transfer" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Type Transfer" { fontSize "20" color "black" } element "Button" { shape "roundedbox" width "260" height "120" background "black" opacity "100" } element "Button" { border "solid" strokeWidth "0" # stroke "blue" } element "Contract" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Button" { fontSize "16" color "white" } element "Person" { shape "Person" width "200" height "200" background "#08427B" opacity "100" } element "Person" { border "solid" strokeWidth "0" stroke "#08427B" } element "Person" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Person" { fontSize "20" color "white" } element "Button Rout" { shape "box" width "370" height "115" background "white" opacity "100" } element "Button Rout" { border "dashed" strokeWidth "0" stroke "black" } element "Button Rout" { description true metadata true # icon } element "Button Rout" { fontSize "16" color "black" } element "Business processes softwaresystem" { shape "RoundedBox" width "450" height "300" background "white" # opacity "100" } element "Business processes softwaresystem" { border "solid" strokeWidth "5" stroke "#11bb66" } element "Business processes softwaresystem" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Business processes softwaresystem" { fontSize "26" color "#11bb66" } element "Button state" { shape "roundedbox" width "260" height "120" background "white" opacity "100" } element "Button state" { border "dashed" strokeWidth "0" stroke "black" } element "Button state" { description true metadata true # icon } element "Button state" { fontSize "16" color "black" } element "Architectures softwaresystem" { shape "RoundedBox" width "450" height "300" background "white" # opacity "100" } element "Architectures softwaresystem" { border "solid" strokeWidth "5" stroke "black" } element "Architectures softwaresystem" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Architectures softwaresystem" { fontSize "26" color "black" } } terminology { } } }