root / trunk / gui / requirements.txt

Revision 194, 4.2 kB (checked in by ocjhb, 4 years ago)

added first draft of gui requirements

  • Property svn:mime-type set to text/plain
  • Property svn:eol-style set to native
Line 
1This describes the gui for the opencoin wallet, which is a standalone computer
2program that should run on windows, macosx and linux.
3
4Ideally its metaphors and user interaction ideas would be transferrable to other
5clients as well, e.g. a mobile phone.
6
7Functions
8=========
9
10A wallet holds tokens from different currencies - pretty much like a real world
11wallet. These tokens can be received from and sent to other wallets, or the
12issuer of the currency.
13
14All the following functions need to be done within the scope of a specific
15currency - we don't support mixed transactions at this time!
16
17
18Sending and receiving
19---------------------
20
21When sending tokens, the user needs to decide
22
23 - what amount to send
24
25   The wallet software tries to automatically pick the right tokens - if not
26   possible, an exchange (see below) needs to initiated
27
28 - what the purpose is
29
30   some freetext
31
32 - whom to send it to
33
34   The user needs to decide whether to use an internet connection or a
35   bluetooth connection. Other kinds of connection might be possible
36
37   If 'internet' is choosen, and address needs to be provided by the user.
38
39   If 'bluetooth' is choosen, a selection of nearby devices should be
40   present to the user, and the user can pick the partner for this
41   transaction.
42
43The other side needs to activate receiving of the tokens
44
45 - it will need to select the method (internet or bluetooth)
46
47 - once the first contact is made the user should be asked if she wants to
48   receive
49   a) from the specific sender
50   b) the specified amount
51   c) the specified purpose
52
53After this the tokens get transferred, and everything should be fine ;-)
54
55There are quite a lot of things that can go wrong. There might be the
56need for additional user input.
57
58Token exchange
59--------------
60
61When sending tokens, when tokens are about to expire or out of other reasons
62it might become necessary to exchange tokens - basically like changing a banknote
63into smaller ones (or coins).
64
65This transaction is always done with the issuer.
66
67The user should select either
68 
69 - the amount of tokens to exchange
70 - the exact tokens to exchange
71 
72The user also needs to decide whether to exchange
73
74 - to allow a specific amount to be transferred (later on), e.g. '7'
75 - for tokens of exact same denomination
76 - for automatic selection of token denominations
77
78The connection is then being made. The user needs to be informed either upon
79successful completion of the transaction, or of a delay - requireing the user
80to return at a later time to collect the tokens. Maybe the wallet could do this
81automatically later on?
82
83
84Token redeem
85------------
86
87The user might want to redeem the tokens, which means effectively tranferring them
88to the issuer. The interaction is pretty much the same as with token sending.
89
90Token mint
91----------
92
93The user might want to have new tokens from the issuer, but this time not 'paying' with
94old ones, but with other means, e.g. the serial number of a prepaid payment.
95
96The user needs to select the amount of tokens to receive and needs to provide some
97text input as the purpose.
98
99The transaction is made, and the user gets informed if it suceeded, failed or got delayed
100- automatic pickup would be great.
101
102
103Token inspection
104----------------
105
106The user should have the possibility to see exactly what tokens she holds in each of the
107currencies, down to the level of inspecting each and every token.
108
109When getting an overview of the tokens (held in the active currency) most relevant
110information is
111
112 a) denomination of token
113 b) expiration date of token
114
115
116Expected use
117============
118
119Of the described functions,  sending, receiving and exchange will be most likely
120the most prominent methods. The token inspection could be something like the main
121view of a currency, and most of the functions could be triggered from there.
122
123To speak in 'skype' terms:
124
125The list of buddies could be something like the list of tokens, instead of red and
126green 'call' and 'hangup' buttons we would need 'send', 'receive', 'exchange' buttons.
127
128
129Other functions
130===============
131
132There are other intereractions between the user and the wallet
133
134 - allowing new currencies
135 - disallowing currencies
136 - getting new certificates from the issuer
137
138These would be more 'advanced' interactions, and don't need to be done on a day per day
139basis.
140
141
142
143
144
145
146
Note: See TracBrowser for help on using the browser.