grin-web-wallet icon indicating copy to clipboard operation
grin-web-wallet copied to clipboard

Define user stories for mainnet

Open lehnberg opened this issue 6 years ago • 24 comments

Motivation

As we get ready for main net, there's a need to finalise a baseline flow and design for the wallet user interface. These will be dictated by the core use cases that the wallet is expected to handle. We define the user stories to guide a future brief to designers.

User stories

# A wants to so they can
1 User build file-based transactions transact with others
2 User use different wallets from the same client handle multiple sources of funds
...

lehnberg avatar Nov 01 '18 10:11 lehnberg

Ping @ignopeverell @yeastplume @hashmap @quentinlesceller @gavinmcdermott @jaspervdm @tromp @garyyu and any others - put in suggestions in the comments and I'll update.

lehnberg avatar Nov 01 '18 10:11 lehnberg

A User wants to review previous transactions, so they can check details of an earlier payment.

tromp avatar Nov 03 '18 12:11 tromp

A User wants to label transactions, so they can categorise and annotate payments.

darsmith avatar Nov 04 '18 13:11 darsmith

a User wants to create a proof of tx ownership, so they can do their taxes/warranty claims

sesam avatar Nov 06 '18 00:11 sesam

a User wants to see the sum of currently spendable + still maturing grins so they can know how much they can spend and when

sesam avatar Nov 06 '18 00:11 sesam

a User wants to backup their wallet so they can protect their funds from loss

sesam avatar Nov 06 '18 00:11 sesam

a User wants to verify a wallet backup so they can be sure the backup is correct

sesam avatar Nov 06 '18 00:11 sesam

a User wants to restore a wallet backup so they can migrate their wallet to another device

sesam avatar Nov 06 '18 00:11 sesam

a User wants to only temporarily unlock a wallet with a passphrase to be sure funds are not quick and easy to steal by someone borrowing their logged in computer/device

sesam avatar Nov 06 '18 00:11 sesam

a User wants to hide the existence of currently closed/locked wallets to protect their privacy and safety

sesam avatar Nov 06 '18 00:11 sesam

A User wants to enable 2FA, so they can increase their wallet security.

darsmith avatar Nov 06 '18 09:11 darsmith

A user wants to keep a history of recent contacts, that the user transfered money to.

phenomeus avatar Nov 06 '18 10:11 phenomeus

A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.

phenomeus avatar Nov 06 '18 10:11 phenomeus

A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.

I think this is outside the scope of the wallet

jaspervdm avatar Nov 06 '18 12:11 jaspervdm

a User wants to create a contact so they can easily send Grin to specific contact

luijoy avatar Nov 06 '18 12:11 luijoy

A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.

I think this is outside the scope of the wallet

Maybe, but wouldn’t it be cool to have something like that in the future? Deposit any kind of money/ crypto and auto convert it instantly to grin to use it immediately

phenomeus avatar Nov 06 '18 12:11 phenomeus

A user wants to track the confirmations for the last/ all active transfers so they can be sure when the transfer arrived at the destination.

phenomeus avatar Nov 06 '18 12:11 phenomeus

Remember everyone that a wallet contains multiple accounts now, so you may want to mine into one account, receive transactions on another, transfer funds between accounts, view a summary of all accounts in the wallet, etc

yeastplume avatar Nov 06 '18 13:11 yeastplume

Also, for moving forward and collaborating, what tools is everybody using for user flows, wireframing, prototyping, version control and handoff?

darsmith avatar Nov 06 '18 14:11 darsmith

sketch, invision, open to others

phenomeus avatar Nov 07 '18 08:11 phenomeus

sketch, invision, open to others

Same, along with Framer for higher fidelity prototypes. @lehnberg We'll need a GrinVision account setup for UX / UI guys to collaborate and upload prototypes / assets.

darsmith avatar Nov 07 '18 14:11 darsmith

FYI @phenomeus @darsmith I've created a separate issue to track and discuss UX and design tools (https://github.com/mimblewimble/grin-pm/issues/13), and we can focus on the user stories here.

Will update the ticket description soon btw, just having a busy week. Meanwhile, please keep suggestions coming, with focus put on the existing functionality of CLI wallet as well as what we need for mainnet MVP.

lehnberg avatar Nov 07 '18 15:11 lehnberg

My notes now for the kinds of features I think we need in a web application:

Show prominently:

  • Wallet summary info
  • current block height
  • Option to Refresh all data from node

Wallet account management:

  • Show/Select from list of accounts
  • Show detail on particular account (is there a concept of ‘active account’?
  • Display accounts + paths
  • Create new accounts / Manage accounts

Wallet management:

  • Show summary info for all accounts
  • Show summary info detail for a particular account
  • Show recent transactions for account
  • Show outputs for account + output detail (advanced)
  • Outstanding transactions (that haven’t been finalised)

Sending, Receiving… (perhaps one transaction wizard)

  • ‘Send wizard’ Defaults to file Creates file, saves to desktop (or emails somewhere?) Displays outputs that have been locked (link to tx that was created) Or tries the direct Https connection
  • ‘Receive wizard’ Import file, finalise transaction, save back to desktop for giving to sender to finalise Link to created transaction
  • ‘Finalise Wizard’ Finalise and store transaction then post to chain
  • ‘Cancel Transaction Wizard’ For careful and thoughtful unlocking of outputs associated with transactions that the user believes aren’t going to ever hit the chain.

Error management:

  • Active node not in place
  • Can’t reach wallet
  • ‘Normal’ Wallet errors (not enough funds, etc) propagated into client.

yeastplume avatar Nov 12 '18 12:11 yeastplume

Adding a few ideas:

A user wants to see time to confirmation so they know the progress on a transaction

A user wants to create a wallet with one click so they can easily start transacting

As a general thought, I think it's important to make the wallet ux feel similar to other existing payment transfer systems (e.g. venmo) so that the user barrier is as low as possible and it's not intimidating for users new to crypto.

supersourgrape avatar Nov 13 '18 22:11 supersourgrape