Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MASTER] Create a listing candidate #5

Closed
ReidWilliams opened this issue Jul 2, 2019 · 3 comments
Closed

[MASTER] Create a listing candidate #5

ReidWilliams opened this issue Jul 2, 2019 · 3 comments
Assignees
Labels
master User facing feature that needs to be broken into tickets

Comments

@ReidWilliams
Copy link
Contributor

ReidWilliams commented Jul 2, 2019

A user can create a listing candidate using a browser + Metamask

Master ticket complete when:

Assume:

  • User has Metamask installed and set up with at least one private key/address

User can then:

  1. Navigate to https://.../new which creates a listing hash and redirects to https://.../listing/<listhash>
  2. See an empty listing
  3. Drag a file onto the page to start the upload process
  4. See the progress of the upload while...
  5. Entering listing details including title, description, tags, license
  6. Click List button once file upload is complete
  7. Use Metamask popup to sign transaction (Listing.list)
  8. See listing details (as they will appear when viewing the listing) and a message saying that mining is happening. User can close browser and come back to see progress at this point.
  9. Once mining is complete, message now says voting is happening
  10. Once voted in, listing appears as it will for any user. If listing is rejected, message says listing has been rejected.
@ReidWilliams
Copy link
Contributor Author

As I wrote this out, a couple of things came up that still need to be addressed:

  • If a listing application fails, protocol forgets about it (right?). How does a listing owner know it failed? Does https://.../listing/<listing hash> temporarily remain available with a message about the fail? Does the user need to visit https://.../address/<their-address> where failed listings are part of the summary of their activities?
  • How will the owner of a failed listing know why it failed?

@ReidWilliams
Copy link
Contributor Author

ReidWilliams commented Jul 3, 2019

Updated to incorporate Tuesday's discussion. This is v1; we'll add more later.

A user can create a listing candidate using a browser + Metamask

Assume:

User has Metamask installed and set up with at least one private key/address
User can then:

  1. Navigate to https://.../new which creates a listing hash and redirects to https://.../listing/<listhash>
  2. See an empty listing with placeholder title and description
  3. Drag a file onto the page (button that opens file chooser not necessary now)
  4. Page indicates it has "received" file by displaying the file name. File isn't uploaded yet.
  5. Edit title and description
  6. Click List button
  7. Page pops up metamask signing dialog
  8. In parallel, page is posting listing details and file to datatrust
  9. After signing with metamask, page displays upload progress % until upload is complete
  10. After upload/post to datatrust is complete, page displays message that mining is happening
  11. After block is mined, page displays message that voting is happening
  12. After listing is voted in and Listing.resolveApplication is called, page displays listing title, description, and date it became a listing.

User obviously has to keep browser open while the upload happens. Once upload is complete, and user is waiting on eth mining, voting, or the call to Listing.resolveApplication, user should be able to leave page, close browser, even clear cache, and come back to same url to see status.

For this version, focus on getting the flow of steps working with browser + metamask + datatrust + eth node all playing nice. Later we'll add CSS/Layout, pretty colors, more metadata (like license and tags).

TODO: figure out how to deal with outcomes like listing voted down, dropped eth transactions.

@robrobbins robrobbins added this to the Listing Candidate milestone Jul 9, 2019
@robrobbins
Copy link
Collaborator

@robrobbins robrobbins changed the title Create a listing candidate using a browser + Metamask [MASTER] Create a listing candidate using a browser + Metamask Jul 9, 2019
@ReidWilliams ReidWilliams added the master User facing feature that needs to be broken into tickets label Aug 7, 2019
@ReidWilliams ReidWilliams changed the title [MASTER] Create a listing candidate using a browser + Metamask [MASTER] Create a listing candidate Oct 9, 2019
@ReidWilliams ReidWilliams self-assigned this Oct 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
master User facing feature that needs to be broken into tickets
Projects
None yet
Development

No branches or pull requests

2 participants