This bounty is no longer available
Web3 DAO | riffcc Logo

Web application for managing IPFS metadata

Organization

riffcc

Deadline

about 1 year ago

Status

ENDED

500 USD

INSTRUCTIONS

Outline

Riff.CC is seeking development resources to work on a web application (preferably written in Vue.js + Vuetify) which allows users to publish content on IPFS, then make that content available on a site or network of sites which link to IPFS content.

Developers have the option of developing this solution using

  • Ceramic and ComposeDB
  • OrbitDB

or, if agreed with Riff.CC beforehand, any other appropriate technology.

Note: we reserve the right to not pay out prizes to low-quality submissions that do not meet project criteria.

Estimated time commitment

We estimate that these tasks would take an intermediate to advanced developer approximately 5-10 hours to implement in a basic rough form. There are no requirements for polish, beyond that code must be maintainable and "relatively clean" - proof of concept is the name of the game here.

Required features

Uploads, pinning and moderation

  • Users can upload content by filling out an Upload form that asks them to provide an IPFS CID and a name. Here is an example CID, which would have the name "Adam McHeffey - Let's Kick Fire".
  • After uploading content, the content is placed into a moderation queue. (This feature should be toggle-able).
  • Users can be assigned a Moderator privilege by the site owners which allows them to manage the moderation queue.
  • Users can log in with their Ethereum or other cryptocurrency wallet via Metamask.
  • A front page that lists all content uploaded by users (in the case of moderated sites, all content approved by moderators), listed by name and a short version of their DID or ENS name.

Federation

Sites should be able to take content from other sites in a publish/subscribe model, whereupon a site can subscribe to a site's pins and get all content from that site automatically (optionally, that content can enter a moderation queue first) added to their own.

Feature descriptions, user stories and further details

Here are some feature descriptions and user stories to make it clearer what each feature is about.

Uploads, pinning and moderation

A user should be able to manage their own pins (IPFS CIDs)

  • Add pin
  • Remove pin
  • Edit pin

Here's an example of the metadata a pin could have:

{
  "name": "The Internet's Own Boy: The Story of Aaron Swartz",
  "hashes": {
    "content": "QmU6b5f2FspPMn1PXAZ69JLLBGp4CgvawAVT5ZP5Zptmf8",
    "hint": "The Internet's Own Boy - The Story of Aaron Swartz.mp4",
    "thumbnail": "QmRTUhpn1TAzsYdo9tLpfnr9rLrLqXKyfgpzwkVZ9VyaGX",
    "poster": "QmVRkwu8ihueDm1pSZRZrHfoZW4f1fCTagEs83q52LqsBP"
  },
  "metadata": {
    "type": "Movie",
    "resolution": "1080p",
    "tmdb_id": 250658
  }
}

Story 1

Bob comes to Riff.CC as a user. They look around the site, and see the following content:

Movies:

  • The Internet's Own Boy
  • Steal This Film

Music:

  • Swear and Shake - Maple Ridge
  • Adam McHeffey - Let's Kick Fire

They decide to upload an album, Nine Inch Nails - The Slip. They navigate to Riff.CC's home page, log in, then click Upload. They then type the name of the album, specify that it's category Music and type Album, add a description and a licence, then paste an IPFS CID. The album is then added to the site pending approval by staff.

Story 2

Alice is a moderator of Riff.CC and visits the site. She notices that Bob's upload of The Slip is in the moderation queue. She approves the album, and it appears on the site.

Story 3

Jane is a moderator of Riff.CC and notices the description for The Slip, as uploaded by Bob and approved by Alice, is wrong. It's also missing album art - oh noes! She edits the description and adds the missing album art.

Federation

Story 1

We have three sites/islands:

PopMusic.xyz RapMusic.xyz AllMusic.xyz

Each has their own policies for moderation and allowed content, and manages sets of pins.

Neither PopMusic nor RapMusic follow anything, but AllMusic follows both PopMusic and RapMusic.

Therefore, AllMusic should have all content (the union of) PopMusic and RapMusic - all content from both sites should exist on AllMusic.xyz.

Story 2

We have two sites, RapMusic.xyz and RapWorld.xyz.

On RapMusic.xyz, we have the following albums:

  • Fort Minor - The Rising Tied

On RapWorld.xyz, we have the following albums:

  • Fort Minor - We Major (mixtape)

RapMusic decides that they like RapWorld's moderation policies and quality, and subscribes to RapWorld.xyz, at which point RapMusic now has the following albums:

  • Fort Minor - The Rising Tied
  • Fort Minor - We Major (mixtape)

Seeing that RapMusic has followed them, RapWorld decides to follow RapMusic, and now has both albums too.