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

Web3 Weekend :: Basic Data Wallet UI #6

Open
13 tasks
hebbianloop opened this issue May 24, 2021 · 0 comments
Open
13 tasks

Web3 Weekend :: Basic Data Wallet UI #6

hebbianloop opened this issue May 24, 2021 · 0 comments
Assignees

Comments

@hebbianloop
Copy link
Member

hebbianloop commented May 24, 2021

Basic Data Wallet UI for Dataset Management.

The Basic Data wallet is an application that allows a user to upload a file in a standard specification (BIDS), verify the file specification metadata, set sharing permissions, and peer-to-peer upload/share. Data can be shared and unshared at any time. Individual DIDs can be added to share data in individual data sharing spaces (like a group text). As a basic first step, sharing is accomplished by revealing the ipfs hash to legal DIDs.

Single-User Actions

  1. web3 wallet login
    User prompted with log-in, must log in with metamask. Upon login, user is presented with UI with sidebar showing public, private, and shared data (empty by default). The dataset metadata is the default view. User may browse through version history and network information tabs for each dataset.
  2. upload file
    User can drag file into UI to add to their data wallet. A version-controlled dataset is initialized with datalad when file is dropped in app.
  3. file parsing & validation
    A validation script runs to read the metadata from the dataset. The content is added + validation info committed into version history with datalad. Permissions may be set. If set to share or public, a remote ipfs/infura/texibleDB node is initialized.
  4. sign dataset
    User signs data after finalizing permissions. Metadata, version history, and repository/dataset remote information and metadata are stored on-chain.
  5. deploy to IPFS
    Users choose when to publish data after adding to the wallet and verifying the contents. Infura gateway used to publish data securely. Dataset availability is confirmed, on-chain data is queried and updated to reflect dataset availability.

Example Front-End

Screen Shot 2021-05-24 at 6 34 47 PM

Figma Link Here

Working Elements

  • Drag and drop file box
    -- check file extension
    -- run bids validation on bids json
    ---> https://github.com/bids-standard/bids-validator
    -- create new datalad dataset (local)
    -- add file to new datalad dataset (local)
    -- commit file status (local; bids-validation output: warnings/info)
  • Sidebar Dataset Browser
    each side bar element filters datasets by permissions
    -- private
    -- public
    ---> download public data (can choose to pin)
    -- space shared with me
    unique space for each unique group, like group chat
  • Dataset Metadata Tab
    each selected dataset has metadata tab (default view)
    -- name, size, owner, permissions, schema (bids),
  • History tab
    git log --graph --pretty=format:'' --abbrev-commit
    each selected dataset has history tab
    -- datalad version history for each dataset / file
  • Network Info tab
    git annex info
    each selected dataset has network info tab
    -- list of datasets/git remotes
    -- ipfs CID
    -- no. copies
  • Actions Panel
    -- Publish
    -- Delete
    -- Pin (keep copy for seeding)
    -- Manage Permissions
  • Profile/Account with Web3 Login
    -- metamask
    -- address resolve to ENS
  • Set/Change Permissions & Sign
    public/private/shared-list
    -- read onchain permissions
    -- search names by ENS
    -- check existing permissions for modification privelleges
    -- publish to ipfs/remote
    -- write new onchain permission
  • Publish to IPFS & Sign
    -- configure dataset remote
    git annex ipfs) https://git-annex.branchable.com/special_remotes/ipfs/
    other remotes) https://git-annex.branchable.com/special_remotes/
    -- create bucket
    -- create folder
    -- push dataset to remote
    -- check remote and write metadata to chain

Reach Goals / Next Steps:

Materials & Examples

@hebbianloop hebbianloop changed the title Basic Dashboard UI Web3 Weekend :: Basic Data Wallet UI May 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants