From 4b28557fb4e01d4c773994db8474c68ccf4b5645 Mon Sep 17 00:00:00 2001 From: juandiego Date: Wed, 13 Mar 2024 17:00:32 -0500 Subject: [PATCH 1/3] Doc(MassTransfer): add reference architecture --- Writerside/p.tree | 4 +- Writerside/topics/Mass-Transfers.md | 137 ++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 Writerside/topics/Mass-Transfers.md diff --git a/Writerside/p.tree b/Writerside/p.tree index c87b497..80b64ed 100644 --- a/Writerside/p.tree +++ b/Writerside/p.tree @@ -7,7 +7,9 @@ start-page="Starting-Page.topic"> - + + + diff --git a/Writerside/topics/Mass-Transfers.md b/Writerside/topics/Mass-Transfers.md new file mode 100644 index 0000000..e0e3db9 --- /dev/null +++ b/Writerside/topics/Mass-Transfers.md @@ -0,0 +1,137 @@ +# Mass Transfers + +```plantuml +@startuml + +!theme _none_ +left to right direction +scale max 800 width +skinparam packageStyle rect +skinparam actorStyle awesome + +actor Recipient as R <> + +rectangle "Organization" <> { + actor OrgUser as OU + rectangle System as S <> { + rectangle SDK as SDK + } +} + +rectangle "Qenta" { + + package "Qenta App" { + usecase "Query balance" as UC1 + usecase "Query transactions" as UC2 + usecase "Cash out" as UC3 + } + + package "ProWallet Console" { + usecase "Manage recipients" as UC4 + usecase "Manage payment batches" as UC5 + usecase "Approve & process batch" as UC6 + } + + package "Qenta API" { + usecase "Manage recipients" as UC7 + usecase "Manage payment batches" as UC8 + usecase "Approve & process batch" as UC9 + } +} + +R ..> UC1 +R ..> UC2 +R ..> UC3 + +UC7 <.. S +UC8 <.. S +UC9 <.. S + +UC4 <.. OU +UC5 <.. OU +UC6 <.. OU + +@enduml +``` + + +## Reference architecture + +```plantuml +@startuml + +skinparam actorStyle awesome + +rectangle "B2C" <> { + actor "Recipient" as Recipient +} + +rectangle "Organization" <> { + component "System" { + [SDK] + } + actor "Organization User" as OU +} + +package "Qenta" { + interface "HTTP" as HTTP + HTTP -down- [API Gateway] + + rectangle "User interface" { + [Qenta App] + [ProWallet Console] + } + + component "Mass Transfer Engine" as engine { + [Recipients service] + [Batch service] + [Pricing service] + [Notification service] + } + + component "QoS" as BC <> { + [Wallets] + [Contracts] + } + +} + +OU .down.> [ProWallet Console] : Manage recipients \n & batches +Recipient .down.> [Qenta App] : Uses + +[ProWallet Console] .left.> [HTTP] : Use +[SDK] .down.> [HTTP] : Create batch + +[API Gateway] .down.> [Batch service] : forward +[Batch service] .left.> [Pricing service] : Use + +[Batch service] .down.> [Wallets] + +@enduml +``` + +## Managing Recipients + +Before to include a recipient into a payment batch you need to onboard him. The recipient is the person that will receive the payment. + +### Onboarding + +```plantuml +@startuml + +!theme _none_ + +|Organization| +start + :Onboard recipient; +|Recipient| + if (Already user?) then (yes) + :Info notification; + else (no) + :Create recipient; + endif +stop + +@enduml +``` + From 0256c2a82a104dec7b261c95f3ebdd8f8c96c6b1 Mon Sep 17 00:00:00 2001 From: juandiego Date: Thu, 14 Mar 2024 16:34:39 -0500 Subject: [PATCH 2/3] Doc(TreasuryManagement): add reference architecture --- Writerside/p.tree | 1 + Writerside/topics/Mass-Transfers.md | 58 +------------------ Writerside/topics/Treasury-Management.md | 71 ++++++++++++++++++++++++ Writerside/v.list | 2 +- 4 files changed, 75 insertions(+), 57 deletions(-) create mode 100644 Writerside/topics/Treasury-Management.md diff --git a/Writerside/p.tree b/Writerside/p.tree index 80b64ed..0804ac4 100644 --- a/Writerside/p.tree +++ b/Writerside/p.tree @@ -8,6 +8,7 @@ + diff --git a/Writerside/topics/Mass-Transfers.md b/Writerside/topics/Mass-Transfers.md index e0e3db9..01fcd23 100644 --- a/Writerside/topics/Mass-Transfers.md +++ b/Writerside/topics/Mass-Transfers.md @@ -1,59 +1,5 @@ # Mass Transfers -```plantuml -@startuml - -!theme _none_ -left to right direction -scale max 800 width -skinparam packageStyle rect -skinparam actorStyle awesome - -actor Recipient as R <> - -rectangle "Organization" <> { - actor OrgUser as OU - rectangle System as S <> { - rectangle SDK as SDK - } -} - -rectangle "Qenta" { - - package "Qenta App" { - usecase "Query balance" as UC1 - usecase "Query transactions" as UC2 - usecase "Cash out" as UC3 - } - - package "ProWallet Console" { - usecase "Manage recipients" as UC4 - usecase "Manage payment batches" as UC5 - usecase "Approve & process batch" as UC6 - } - - package "Qenta API" { - usecase "Manage recipients" as UC7 - usecase "Manage payment batches" as UC8 - usecase "Approve & process batch" as UC9 - } -} - -R ..> UC1 -R ..> UC2 -R ..> UC3 - -UC7 <.. S -UC8 <.. S -UC9 <.. S - -UC4 <.. OU -UC5 <.. OU -UC6 <.. OU - -@enduml -``` - ## Reference architecture @@ -126,9 +72,9 @@ start :Onboard recipient; |Recipient| if (Already user?) then (yes) - :Info notification; + :Notify subscription; else (no) - :Create recipient; + :Send invitation; endif stop diff --git a/Writerside/topics/Treasury-Management.md b/Writerside/topics/Treasury-Management.md new file mode 100644 index 0000000..9075d64 --- /dev/null +++ b/Writerside/topics/Treasury-Management.md @@ -0,0 +1,71 @@ +# Treasury management + +## Reference architecture + +```plantuml +@startuml + +scale max 800 width +skinparam actorStyle awesome + + +rectangle "Organization" <> { + component "System" { + [SDK] + } + actor "Organization User" as OU +} + +package "ProWallet ecosystem" { + interface "HTTP" as HTTP + HTTP -down- [API Gateway] + + rectangle "User interface" { + [ProWallet Console] + } + + component "Core services" as engine { + [Transfer service] + [Orders service] + [Pricing service] + [Payment service] + } + + component "QoS" as BC <> { + [Wallets] + [Contracts] + } + +} + +package "Qenta Payments" { + [EMConnect] +} + +package "Global payment paywalls" { + [PayPal] + [Pioneer] + [Local & Regional Banks] +} + +OU .down.> [ProWallet Console] : Buy, sell, transfer \n & manage assets + +[ProWallet Console] .left.> [HTTP] : Use +[SDK] .down.> [HTTP] : Create orders, transfer + +[API Gateway] .down.> [Orders service] : forward +[Orders service] .left.> [Pricing service] : Use +[Orders service] .right.> [Payment service] : Use +[Transfer service] .right.> [Pricing service] : Use + +[Transfer service] .down.> [Wallets] +[Orders service] .down.> [Wallets] + +[Payment service] <.right.> [EMConnect] : Use +[EMConnect] .down.> [Local & Regional Banks] : Integrates + +@enduml +``` + +## Purchase orders + diff --git a/Writerside/v.list b/Writerside/v.list index a671403..9c72db6 100644 --- a/Writerside/v.list +++ b/Writerside/v.list @@ -7,7 +7,7 @@ - + From 2e2270317a7fae17088044ae09d5c469bfe105db Mon Sep 17 00:00:00 2001 From: juandiego Date: Mon, 18 Mar 2024 09:50:07 -0500 Subject: [PATCH 3/3] Doc(TreasuryManagement): add reference architecture diagrams --- Writerside/topics/Mass-Transfers.md | 70 ++++++++++++++++++------ Writerside/topics/Treasury-Management.md | 66 +++++++++++++--------- 2 files changed, 92 insertions(+), 44 deletions(-) diff --git a/Writerside/topics/Mass-Transfers.md b/Writerside/topics/Mass-Transfers.md index 01fcd23..3d5e79e 100644 --- a/Writerside/topics/Mass-Transfers.md +++ b/Writerside/topics/Mass-Transfers.md @@ -6,6 +6,7 @@ ```plantuml @startuml +scale max 870 width skinparam actorStyle awesome rectangle "B2C" <> { @@ -14,34 +15,59 @@ rectangle "B2C" <> { rectangle "Organization" <> { component "System" { - [SDK] + [SDK] #orange } actor "Organization User" as OU } -package "Qenta" { - interface "HTTP" as HTTP - HTTP -down- [API Gateway] - - rectangle "User interface" { - [Qenta App] - [ProWallet Console] +rectangle "Qenta ecosystem" { + + [Qenta App] + + rectangle "ProWallet ecosystem" { + + interface "HTTP" as HTTP + HTTP -down- [API Gateway] + + rectangle "User interface" { + [ProWallet Console] + } + + component "Mass transfer engine" as engine { + [Recipients service] #orange + [Batch service] #orange + } + + } - - component "Mass Transfer Engine" as engine { - [Recipients service] - [Batch service] - [Pricing service] - [Notification service] + + rectangle "Qenta Payments" { + [EMConnect] + [Qenta CEE] } - + + component "Core services" as core { + [Pricing service] #orange + [Notification service] + [Payment service] #orange + [Orders service] + [Transfer service] + } + component "QoS" as BC <> { [Wallets] [Contracts] } - + +} + +rectangle "Global payment paywalls & Banks" { + [PayPal] + [Payoneer] + [Local & Regional Banks] } + OU .down.> [ProWallet Console] : Manage recipients \n & batches Recipient .down.> [Qenta App] : Uses @@ -49,9 +75,17 @@ Recipient .down.> [Qenta App] : Uses [SDK] .down.> [HTTP] : Create batch [API Gateway] .down.> [Batch service] : forward -[Batch service] .left.> [Pricing service] : Use +[API Gateway] .down.> [Recipients service] : forward +[Batch service] .down.> [Pricing service] : Use +[Recipients service] .down.> [Notification service] : Use + +[Transfer service] .down.> [Wallets] : Use + +[Qenta App] .down.> [Payment service] : Pay + +[Payment service] <.down.> [EMConnect] : Use -[Batch service] .down.> [Wallets] +[EMConnect] .down.> [Local & Regional Banks] : Integrates @enduml ``` diff --git a/Writerside/topics/Treasury-Management.md b/Writerside/topics/Treasury-Management.md index 9075d64..8bc24c7 100644 --- a/Writerside/topics/Treasury-Management.md +++ b/Writerside/topics/Treasury-Management.md @@ -5,63 +5,77 @@ ```plantuml @startuml -scale max 800 width +scale max 870 width skinparam actorStyle awesome - rectangle "Organization" <> { component "System" { - [SDK] + [SDK] #orange } actor "Organization User" as OU } -package "ProWallet ecosystem" { +rectangle "Qenta ecosystem" { + interface "HTTP" as HTTP HTTP -down- [API Gateway] - rectangle "User interface" { - [ProWallet Console] + rectangle "ProWallet ecosystem" { + + + rectangle "User interface" { + [ProWallet Console] #orange + } + + component "Mass transfer engine" as engine { + [Recipients service] + [Batch service] + } + + } - - component "Core services" as engine { - [Transfer service] - [Orders service] - [Pricing service] - [Payment service] + + rectangle "Qenta Payments" { + [EMConnect] + [Qenta CEE] } - + + component "Core services" as core { + [Pricing service] #orange + [Notification service] + [Payment service] #orange + [Orders service] #orange + [Transfer service] #orange + } + component "QoS" as BC <> { [Wallets] [Contracts] } - -} -package "Qenta Payments" { - [EMConnect] } -package "Global payment paywalls" { +rectangle "Global payment paywalls & Banks" { [PayPal] - [Pioneer] + [Payoneer] [Local & Regional Banks] } -OU .down.> [ProWallet Console] : Buy, sell, transfer \n & manage assets + +OU .down.> [ProWallet Console] : Manage recipients \n & batches [ProWallet Console] .left.> [HTTP] : Use -[SDK] .down.> [HTTP] : Create orders, transfer +[SDK] .down.> [HTTP] : Create batch [API Gateway] .down.> [Orders service] : forward + [Orders service] .left.> [Pricing service] : Use -[Orders service] .right.> [Payment service] : Use -[Transfer service] .right.> [Pricing service] : Use +[Transfer service] .left.> [Notification service] : Use + +[Transfer service] .down.> [Wallets] : Use -[Transfer service] .down.> [Wallets] -[Orders service] .down.> [Wallets] +[Payment service] <.down.> [EMConnect] : Use -[Payment service] <.right.> [EMConnect] : Use [EMConnect] .down.> [Local & Regional Banks] : Integrates @enduml