workspace "IXOlist | Bank | Architectures" { !identifiers hierarchical model { properties { "structurizr.groupSeparator" "/" } group "IXOlist" { group "Bank" { User = person "Customer" { } group "Tokens" { token = softwareSystem "Token" { payment_request = container "Payment request" { tags "Button state" } payment_transfer = container "Payment transfer" { tags "Button state" } token_specification = container "Token specification" { tags "Button Rout" url "https://app-test.diakod.com/share/47/diagrams#ixolist-mint-architecture-tokens-token-container" } balance = container "Balance" { tags "Info" amount = component "Amount" { tags "input field" } } transaction = container "Transactions" { tags "Button Rout" } tags "Button Rout" } } transaction = softwareSystem "Transactions" { All = container "All" { tags "Select" group "Table" { tx = component "TX" { tags "Column" } timestamp = component "Timestamp" { tags "Column" } sender = component "Sender" { tags "Column" } receiver = component "Receiver" { tags "Column" } token = component "Token" { tags "Column" } memo = component "Memo" { tags "Column" } amount = component "Amount" { tags "Column" } } } from_me = container "From" { tags "Select" group "Table" { tx = component "TX" { tags "Column" } timestamp = component "Timestamp" { tags "Column" } sender = component "Sender" { tags "Column" } receiver = component "Receiver" { tags "Column" } token = component "Token" { tags "Column" } memo = component "Memo" { tags "Column" } amount = component "Amount" { tags "Column" } } } to_me = container "To" { tags "Select" group "Table" { tx = component "TX" { tags "Column" } timestamp = component "Timestamp" { tags "Column" } sender = component "Sender" { tags "Column" } receiver = component "Receiver" { tags "Column" } token = component "Token" { tags "Column" } memo = component "Memo" { tags "Column" } amount = component "Amount" { tags "Column" } } } tags "Button Rout" } payment_transfer = softwareSystem "Payment transfer" { tags "Button state" group "Mode" { multiple = container "Multiple" { manual = component "Manual" { tags "Select" } csv = component "Import CSV" { tags "Select" } #!include \ # "./csv/index.dsl" tags "Select" } single = container "Single" { group "Token amount" { token = component "Token" { tags "input field" } amount = component "Amount" { tags "input field" } button-drop-list = component "*" { tags "Button drop list" } entire_amount = component "Entire amount" { tags "Button min" } } group "Memo" { memo = component "Memo" { tags "input field" } } group "Receivers" { account = component "Account" { tags "input field" } button-check = component "**" { tags "Button check" } account-selected = component "Selected Account" { tags "input field" } button-trash = component "***" { tags "Button trash" } } group "Transaction data" { transaction_data = component "Transaction data" { tags "Info" } submit = component "Submit" { tags "Button" } } group "Navigation buttons" { back = component "< Back" { tags "Button navigation" } forward = component "> Forward" { tags "Button navigation" } } tags "Select" } } group "Multiple" { manual = container "Manual" { tags "Select" group "Input" { token = component "Token" { tags "input field" } button-drop-list = component "*" { tags "Button drop list" } amount = component "Amount" { tags "input field" } entire_amount = component "Entire amount" { tags "Button min" } memo = component "Memo" { tags "input field" } account = component "Account" { tags "input field" } button-check = component "**" { tags "Button check" } account-selected = component "Selected Account" { tags "input field" } button-trash = component "***" { tags "Button trash" } } group "Navigation buttons" { back = component "< Back" { tags "Button navigation" } forward = component "> Forward" { tags "Button navigation" } } group "Transaction data" { transaction_data = component "Transaction data" { tags "Info" } submit = component "Submit" { tags "Button" } } } csv = container "Import CSV" { tags "Select" group "Input" { group "Added CSV" { token = component "Token" { tags "input field" } amount = component "Amount" { tags "input field" } memo = component "Memo" { tags "input field" } account = component "Account" { tags "input field" } button-trash = component "***" { tags "Button trash" } } upload = component "Upload" { tags "Button" } } group "Navigation buttons" { back = component "< Back" { tags "Button navigation" } forward = component "> Forward" { tags "Button navigation" } } group "Transaction data" { transaction_data = component "Transaction data" { tags "Info" } submit = component "Submit" { tags "Button" } } } } transaction_data = container "Transaction data" { network = component "Network" { tags "input field" } sender = component "Sender" { tags "input field" } token = component "Token" { tags "input field" } amount = component "Amount" { tags "input field" } memo = component "Memo" { tags "input field" } receiver = component "Receivers" { tags "input field" } total-amount = component "Total Amount" { tags "input field" } tags "Info" } transaction_data-1 = container "Transaction data*" { group "Receivers" { group "Table" { account = component "Account" { tags "input field" } token = component "Token" { tags "input field" } amount = component "Amount" { tags "input field" } memo = component "Memo" { tags "input field" } } } group "Total amount" { total-amount = component "Total Amount" { tags "input field" } } tags "Info" } } payment_request = softwareSystem "Payment request" { tags "Button state" free_faucet = container "Free faucet" { go = component "Go" { tags "Button" } instruction_text = component "Instruction text" { tags "input field" } instruction_image = component "Instruction image" { tags "Image" } tags "Select" } } } bank = softwareSystem "Bank" { description "Architectures" tags "Architectures softwaresystem" url "https://ixolist.netlify.app/apps/bank/" } } #!include \ # "./4-code/index.dsl" } views { properties { "structurizr.sort" "created" } systemLandscape "ixolist-bank-architecture-systemlandscape" { title "IXOlist | Bank | Architectures" include "bank" } systemcontext "token" "ixolist-bank-architecture-systemcontext" { title "IXOlist | Bank | Architectures" # include "object identifier" include "transaction" include "token" include "payment_transfer" include "payment_request" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions = Имя softwareSystem в которой лежит контейнер container "token" "ixolist-bank-architecture-token-container" { title "IXOlist | Bank # Token" # include "object identifier" include "*" include "payment_request" include "payment_transfer" include "transaction" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } container "payment_transfer" "ixolist-bank-architecture-payment_transfer-container" { title "IXOlist | Bank - payment transfer" # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier exclude "payment_transfer.transaction_data" exclude "payment_transfer.transaction_data-1" exclude "payment_transfer.manual" exclude "payment_transfer.csv" # exclude "identifier relstionship -> identifier relstionship" } container "payment_request" "ixolist-bank-architecture-payment_request-container" { title "IXOlist | Bank - payment request" # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions = Имя softwareSystem в которой лежит контейнер container "transaction" "ixolist-bank-architecture-transactions-container" { title "IXOlist | Bank # Transactions" # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions.All = pTransactions.All_level-3SoftwareSystem.pnameContainer component "token.balance" "ixolist-bank-architecture-token-balance-component" { title "IXOlist | Bank | Token # Balance" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.single" "ixolist-bank-architecture-payment_transfer-single-component" { title "IXOlist | Bank - payment transfer # Single" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * include "payment_transfer.transaction_data" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.transaction_data" "ixolist-bank-architecture-payment_transfer-single-transaction_data-component" { title "IXOlist | Bank - payment transfer | Single # Transaction data" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.multiple" "ixolist-bank-architecture-payment_transfer-multiple-component" { title "IXOlist | Bank - payment transfer # Multiple" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * #include "payment_transfer.transaction_data" include "payment_transfer.manual" include "payment_transfer.csv" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.manual" "ixolist-bank-architecture-payment_transfer-multiple-manual-component" { title "IXOlist | Bank - payment transfer | Multiple # Manual" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * include "payment_transfer.transaction_data-1" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.csv" "ixolist-bank-architecture-payment_transfer-multiple-csv-component" { title "IXOlist | Bank - payment transfer | Multiple # Manual" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * include "payment_transfer.transaction_data-1" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_transfer.transaction_data-1" "ixolist-bank-architecture-payment_transfer-multiple-transaction_data-component" { title "IXOlist | Bank - payment transfer | Multiple # Transaction data" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } component "payment_request.free_faucet" "ixolist-bank-architecture-payment_request-free_faucet-component" { title "IXOlist | Bank - payment request # Free faucet " properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include * # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions.All = pTransactions.All_level-3SoftwareSystem.pnameContainer component "transaction.all" "ixolist-bank-architecture-transactions-all-component" { title "IXOlist | Bank | Transactions # All" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include "*" #include "transactions.all.TX" # #include "Transactions.All.Timestamp" # #include "Transactions.All.Sender" # #include "Transactions.All.Receiver" # #include "Transactions.All.Token_Amount" # #include "Transactions.All.Memo" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions.All = pTransactions.All_level-3SoftwareSystem.pnameContainer component "transaction.from_me" "ixolist-bank-architecture-transaction-from_me-component" { title "IXOlist | Bank | Transactions # From Me" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } # Transactions.All = pTransactions.All_level-3SoftwareSystem.pnameContainer component "transaction.to_me" "ixolist-bank-architecture-payment-history-to_me-component" { title "Payment History | To Me" properties { "structurizr.softwareSystemBoundaries" "true" } # include "object identifier" include "*" # include "identifier relstionship -> identifier relstionship" # exclude "object identifier" # exclude "identifier relstionship -> identifier relstionship" } #!include \ # "./5-deployment/index.dsl" styles { element "Action" { shape "roundedbox" width "400" height "500" # background "white" opacity "100" } element "Action" { border "solid" strokeWidth "0" #stroke "black" } element "Action" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Action" { fontSize "24" color "white" colour "white" } 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 "Button" { shape "roundedbox" width "260" height "120" background "black" opacity "100" } element "Button" { border "solid" strokeWidth "0" # stroke "blue" } element "Button" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Button" { fontSize "14" color "white" } element "Info" { shape "box" width "370" height "250" background "white" opacity "100" } element "Info" { border "solid" strokeWidth "0" stroke "black" } element "Info" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Info" { fontSize "20" color "black" } element "Column" { shape "box" width "400" height "100" background "white" opacity "100" } element "Column" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "Column" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Column" { fontSize "20" color "black" colour "black" } element "Token Button" { shape "roundedbox" width "260" height "120" background "black" opacity "100" } element "Token Button" { border "solid" strokeWidth "0" # stroke "blue" } element "Token Button" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Token Button" { fontSize "16" color "white" } element "CSV" { shape "box" width "400" height "790" background "white" opacity "100" } element "CSV" { border "dashed" strokeWidth "0" stroke "black" } element "CSV" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "CSV" { fontSize "20" color "black" } element "Info Balance" { shape "box" width "370" height "150" background "white" opacity "100" } element "Info Balance" { border "solid" strokeWidth "0" stroke "black" } element "Info Balance" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Info Balance" { fontSize "20" color "black" } element "Token Button Transaction" { shape "box" width "370" height "115" background "white" opacity "100" } element "Token Button Transaction" { border "dashed" strokeWidth "0" stroke "black" } element "Token Button Transaction" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Token Button Transaction" { 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" } 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 "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 "Select" { shape "box" width "400" height "300" background "white" opacity "100" } element "Select" { border "dashed" strokeWidth "0" stroke "black" } element "Select" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Select" { fontSize "20" color "black" } element "Button drop list" { shape "roundedbox" width "100" height "100" background "white" opacity "100" } element "Button drop list" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "Button drop list" { description true metadata false icon "../../../../../../../metadata/icon/button-drop-list/index.svg" } #!include \ # "./properties/index.dsl" element "Button drop list" { fontSize "7" color "black" colour "black" } element "Button min" { shape "roundedbox" width "180" height "100" background "black" opacity "100" } element "Button min" { border "solid" strokeWidth "0" # stroke "blue" } element "Button min" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Button min" { fontSize "12" color "white" } element "Button navigation" { shape "roundedbox" width "260" height "120" background "white" opacity "100" } element "Button navigation" { border "solid" strokeWidth "1" stroke "#e6e6e6" } element "Button navigation" { description true metadata true # icon } #!include \ # "./properties/index.dsl" element "Button navigation" { fontSize "16" color "#404040" colour "#404040" } element "Button trash" { shape "roundedbox" width "100" height "100" background "white" opacity "100" } element "Button trash" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "Button trash" { description true metadata false icon "../../../../../../../metadata/icon/button-trash/index.svg" } #!include \ # "./properties/index.dsl" element "Button trash" { fontSize "7" color "black" colour "black" } element "Button check" { shape "roundedbox" width "100" height "100" background "white" opacity "100" } element "Button check" { border "solid" strokeWidth "5" stroke " #e6e6e6" } element "Button check" { description true metadata false icon "../../../../../../../metadata/icon/button-check/index.svg" } #!include \ # "./properties/index.dsl" element "Button check" { fontSize "7" color "black" colour "black" } element "Image" { shape "box" width "260" height "175" background "white" opacity "100" } element "Image" { border "solid" strokeWidth "0" stroke "black" } element "Image" { description true metadata true icon "../../../../../../../metadata/icon/image/index.svg" } #!include \ # "./properties/index.dsl" element "Image" { fontSize "20" color "black" } } } }