summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-05-21 13:40:39 -0300
committerTorsten Grote <t@grobox.de>2020-05-21 13:40:39 -0300
commitbe62971d6d8ba546f1099a5a183e3d3c1ed51d3b (patch)
treee371837d3087177fcd5e4e302baefd6e03e433bb /design-documents
parent95fa4f624ecce81fdc3b330fd713185001f2f957 (diff)
downloaddocs-be62971d6d8ba546f1099a5a183e3d3c1ed51d3b.tar.gz
docs-be62971d6d8ba546f1099a5a183e3d3c1ed51d3b.tar.bz2
docs-be62971d6d8ba546f1099a5a183e3d3c1ed51d3b.zip
Add user flow of backup feature to design doc 5
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/004-wallet-withdrawal-flow.rst2
-rw-r--r--design-documents/005-wallet-backup-sync.rst76
2 files changed, 77 insertions, 1 deletions
diff --git a/design-documents/004-wallet-withdrawal-flow.rst b/design-documents/004-wallet-withdrawal-flow.rst
index b13896a6..f6382446 100644
--- a/design-documents/004-wallet-withdrawal-flow.rst
+++ b/design-documents/004-wallet-withdrawal-flow.rst
@@ -73,7 +73,7 @@ The user flow between these screens is described in the following graph:
];
transactions [
label = "List of\nTransactions";
- shape = circle;
+ shape = oval;
];
default_exchange -> tos_changed [label="Yes"];
diff --git a/design-documents/005-wallet-backup-sync.rst b/design-documents/005-wallet-backup-sync.rst
index db463585..25213c80 100644
--- a/design-documents/005-wallet-backup-sync.rst
+++ b/design-documents/005-wallet-backup-sync.rst
@@ -118,6 +118,82 @@ The different sync servers one wallet is enrolled with do not necessarily
have the same set of other wallet enrolled. Each sync server has a separate Lamport clock
and contains a separate CRDT.
+Backup user flow
+================
+
+.. graphviz::
+
+ digraph G {
+ nodesep=0.5;
+ withdrawal [
+ label = "First\nWithdrawal";
+ shape = oval;
+ ];
+ has_backup [
+ label = "Has backup\nconfigured?";
+ shape = diamond;
+ ];
+ app_settings [
+ label = "App\nSettings";
+ shape = rect;
+ ];
+ backup_onboarding [
+ label = "Backup\nOnboarding";
+ shape = rect;
+ ];
+ backup_settings [
+ label = "Backup Settings\n\n* time of last backup\n* current service";
+ shape = rect;
+ ];
+ choose_backup_service [
+ label = "Choose\nBackup Service";
+ shape = rect;
+ ];
+ tos_accepted [
+ label = "Current ToS\naccepted?";
+ shape = diamond;
+ ];
+ tos [
+ label = "ToS";
+ shape = rect;
+ ];
+ payment_required [
+ label = "Payment\nrequired?";
+ shape = diamond;
+ ];
+ payment_confirmation [
+ label = "Payment\nConfirmation";
+ shape = rect;
+ ];
+ backup_secret [
+ label = "Backup Secret\n\nStore or write down!";
+ shape = rect;
+ ];
+
+ withdrawal -> has_backup;
+ has_backup -> backup_onboarding [label="No"];
+ backup_onboarding -> backup_settings;
+ app_settings -> backup_settings;
+ backup_settings -> backup_settings [label="Disable Backup"];
+ backup_settings:w -> backup_settings:w [label="Sync now"];
+ backup_settings -> choose_backup_service;
+ choose_backup_service -> tos_accepted [label="Select Service"];
+ tos_accepted -> tos [label="No"];
+ tos_accepted -> payment_required [label="Yes"];
+ choose_backup_service:w -> choose_backup_service [label="Remove current service"];
+ choose_backup_service:n -> choose_backup_service:n [headlabel="Add new service", labeldistance=3.5];
+ tos -> payment_required [label="Accept"];
+ payment_required -> payment_confirmation [label="Yes"];
+ payment_confirmation -> backup_secret [label="Paid"];
+ backup_secret -> backup_settings [label="Stored"];
+ payment_required:s -> backup_secret:w [label="No"];
+
+ { rank=same; has_backup; backup_onboarding; }
+ { rank=same; withdrawal; app_settings; }
+ { rank=same; tos_accepted; tos; }
+ { rank=same; payment_required; payment_confirmation; }
+ }
+
References
==========