Giter Club home page Giter Club logo

ceramic-riff-web's People

Contributors

en0c-026 avatar simplytadpole avatar zorlin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

ceramic-riff-web's Issues

Add ability to moderate/edit/reject content from subscriptions

All content on the site should appear in the admin panel for review/moderation, including content that comes from sites we've subscribed to.

We should store the "difference" between our copy of of a piece of content and the content as it appears on the original site.

Epic: Featured content

Users should be able to vote content up, both as a general like/dislike on the content, as well as an individual vote for each genre/tag associated with it.

Admins should be able to promote a piece of content to Featured and feature it from a certain date until a certain date (or feature it "forever").

There should be a panel in the admin panel which shows content that has a lot of votes relative to the other content, and allows admins to see what the voting suggests they should feature (ie: they can see what's popular and make it featured content)

Customisable feed

Users should be able to choose to see what they see as a "feed" on their front page.

There should be an option in settings something like this:

Settings

  • Profile
  • My Feed
  • Preferences

When a user clicks My Feed, they should be taken to a page like this:

"You can choose what to see when you visit . Add, remove and reorder the categories you wish to see:"

Feed:
☰ Movies ❌
☰ Music ❌
☰ TV ❌
➕ Add more

Then when a user visits the front page, they should see featured content in those categories first:

Movies
Music
TV

Then an "all" version of those categories:

All Movies
All Music
All TV

Feat: Music player

When a user clicks the thumbnail of a Music pin, it should:

  • Take them to the details page for the album
  • Start playing the album from the start (unless the user has disabled "Automatically play albums when I click their thumbnails" in their profile)

The CID for the Music pin should always be a folder containing music, in which there will be tracks numbered 01 to 99 (or 000 to 999 etc in the case of extremely long albums or albums with tons of tracks).

They will have names like

01 - Song 66.flac
02 - Esmerelda.flac

Upon loading the page, we should fetch and display the list of tracks and their names, as well as the album art. There should also be a link to the artist's page, where we can see all the albums associated with them. We should start playing from Track 01 and offer standard audio player controls.

Subissues:

Federation: Arbitrary subscriptions and site-to-site demonstration

We should have the ability to create arbitrary site subscriptions.

Much like the Admins section of the admin panel, we would like to be able to add any SiteID as a subscription.

Additionally, we should be able to show two independent sites:

  • riff.cc
  • ftwc.xyz

They should be running the same software, but on different computers (on different continents), with different SiteIDs. We should be able to demonstrate the following

  • Riff.CC has 10 pins uploaded
  • FTWC.xyz has none
  • The admin of FTWC.xyz subscribes to Riff.CC's site ID
  • FTWC.xyz now has all of Riff.CC's content
  • A user of FTWC.xyz uploads some content
  • The admin of FTWC.xyz approves that content
  • Seeing that FTWC.xyz has content that Riff.CC doesn't yet have, the admin of Riff.CC subscribes to FTWC.xyz's SiteID
  • Both sites now have the complete set of all content available.

Validate that the CID that user enters is a valid CIDv0 or CIDv1

We need to check that when a user uploads a CID through the upload form that it's a valid CID according to the CIDv0 or CIDv1 specs. If it is not, a message should be displayed gently reminding the user that they should be entering a CID.

Something like "Please enter a valid CIDv0 or CIDv1 ID."

Add Category functionality

We will need the ability to add, edit and update categories of content.

For now, we will have the following categories:

  • TV Shows
  • Movies
  • Audiobooks
  • Games
  • Books
  • Music
  • Videos
  • Other

A user should be made to select a category when uploading a Pin.

As a sidenote - Name, CID and Category will be the only required fields for uploads, all other fields should be optional.

Build an upload proxy that allows users to upload files to Riff.CC via Estuary.tech

We will need a way for users to be able to upload files to IPFS without needing the IPFS software installed.

One potential option is to build a small proxy that can receive uploads from users on the Origin Site and forward them to Estuary.tech. An Estuary API key would be stored on the webserver, and it would act as a go-between for users uploading to Estuary. It would tag all uploads with the Ethereum public address of the user who uploaded a piece of content, so that we could map who uploaded what.

Branding: Ability to change name, logo, main colours of site

We should offer site admins the ability to change the name, logo and main colour of their site. This should apply for all users.

Additionally, users should be able to set their own favourite colour which overrides the colour chosen by the site.

Implement pagination

We should have a paging system that allows you to select how many items you want to see per page

"Items per page: dropdown" (values 10, 50, 100, 250)

Then when you're viewing the list of pins, if there's more than 10 and you have set 10 items per page, pages appear like this

Page 1 [2] [3] [4] [5] where 2-5 are buttons you can click to go to those pages.

List view for My Pins and Content list in Admin panel

When viewing content in the My Pins section of the application, as well as the Admin section (under Content), there should be a table like this, where

  • the thumbnail is the actual thumbnail displayed as an image.
  • name is the name of the pin
  • category is the category of the pin
  • CID is an abbreviated version of the CID, showing the first 5 and last 5 characters of the CID. It should be a hyperlink to the full CID, as hosted at whatever IPFS gateway is configured in .env
  • Action buttons are displayed as icons, with appropriate mouse-over/hover text explaining what they do. The actions should be Approve, Reject, Edit and Delete.
Thumbnail Name Category CID Action buttons
http://cf-ipfs.com/ipfs/QmbRFnyo7Hdi5ApjHaUvoS8v77WghukPLcTTxPSAi9fjTq Adam McHeffey - Let's Kick Fire Music QmRdke...p7VeT [Approve][Reject][Edit][Delete]
http://illegal-art.net/girltalk/images/nightripper.jpg Girl Talk - Night Ripper Music QmdKML...5hcAV [Approve][Reject][Edit][Delete]
https://pbs.twimg.com/profile_images/461942001596772353/fH8p0SGX_400x400.jpeg The Internet's Own Boy: The Story of Aaron Swartz Movies QmEXAA...AMPLE [Approve][Reject][Edit][Delete]

The table should be styled as such:

  • No header row (ie: no "Thumbnail", "Name", "Category") displayed, that's just there for reference in this task
  • Displayed without lines around each cell
  • Should take full advantage of widescreen displays

Feat: Movie player

I would like if if we had a movie player that looked like this:

Image

Icons are from font-awesome

Color of the slider is #5558DD for the bits already played, #343434 for the bits yet to play. It's important it's exactly these colours for now :)

When you hover over a movie, it should show a play icon
When you click it it should take you to this player and play the movie
When you move the mouse, it should bring up the player controls as seen in this screenshot, otherwise it should hide them (after a few seconds) so you can watch the movie uninterrupted

Music player - get information from tags

We should display the name of a track based on the ID3/FLAC tags on a file. We may need to figure out a better way to retrieve these than simply loading the first part of each track, however.

Ability to un-reject items

Once an item is rejected, it should be possible to un-reject or approve it. There should be an appropriate button for un-rejecting the release (something neutral? not sure what the icon should be), and a standard Approve button (as well as the current Delete button).

Feat: Advanced upload form

We should make a more advanced upload form.

Most fields should be optional, and they should all be stored in a way that is extensible over time - ie: we should be able to add new fields to this list without wiping an Origin Site)

See: https://docs.google.com/forms/d/e/1FAIpQLSdOQl7ZFOGd0z5sZwI3xsUOcGDZCyiAuAY7v_uhYxWeougH1A/viewform?usp=sharing

(or https://docs.google.com/forms/d/e/1FAIpQLSdOQl7ZFOGd0z5sZwI3xsUOcGDZCyiAuAY7v_uhYxWeougH1A/viewform for a public view)

Right now only music and movies is defined on the form. I tried to make it roughly match trackers like Gazelle.

This issue should be partially implemented at first, making a form for Music and Movies. When you select a category other than Music or Movies, it should say "Coming soon..." instead.

When you fill in a MusicBrainz, TMDB or IMDB ID in the form, we should fetch the appropriate data from that service and fill in the rest of the form with the data we find.

Allow editing pins

We should be able to edit pins, changing the name, category and CID of them as needed. Later, we'll add more fields to edit.

Ability to remove admins

We should be able to remove admins from the list of admins. This could be a simple "remove" button. The admin specified in the original site config should not be removable for now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.