Giter Club home page Giter Club logo

chavah's People

Contributors

dependabot[bot] avatar judahgabriel avatar kdcllc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

chavah's Issues

Admin logs update

The admin logs page is busted because we've changed the underlying storage mechanism. Fix this.

Chavah should remember volume preference

A listener reports that she sets Chavah's volume to 20%, but she has to do this every time she launches Chavah.

Chavah should remember volume settings for signed-in users.

Fill out the profile page

A user's profile page should allow them to add their first name, last name, profile pic.

They should be able to see their favorite artists, albums, songs, and tags. They should be able to see the song edits they've submitted. They should be able to see the song requests they've made.

When playing a song by ID (e.g. following a Google link), we should display banner asking for donation to artist

We should encourage users who follow direct song links from Google to donate to the artist.

Some artists have expressed concern that users search for a song of theirs on Google, and the first link that comes up is a direct link to that song on Chavah. This is both good and bad: good that users get what they want, but bad that artists aren't compensated for that.

One thing that might help alleviate this, and financially help artists, would be to display a banner when a user follows a direct song link from Google. It would display as a banner at the top of Chavah, something like:

"Like this song? Donate to Ted Pearce to support Messiah's musicians."

When a song plays, change the URL

Users expect Chavah to work like YouTube: if the song changes, the URL should change as well. Then users can simply copy the URL and paste in a social network.

Fix sharing on mobile

On iOS (and on Android?), clicking Share -> Copy Link doesn't actually copy the link.

Songs should have a field for featuring / contributing artist.

We have several songs that have more than one artist. For example, Paul Wilbur (featuring Sharon Wilbur), or Baht Rivka Whitten (featuring Joshua Aaron). But we have no way to represent that, aside from changing the artist.

Songs should have a new field: .ContributingArtists. And we should show that in the Now Playing page when there are contributing artists.

Admin page: users

Add a page to the admin section that lets us see all users, ordered by most recently registered. The page should allow us to edit users.

Let users comment on songs

As an admin, I often see users trying to add comments to songs via the "add lyrics/tags" functionality.

I have to reject those submissions, of course, but the it shows an organic need for our users. I think it would help build community around Chavah as well.

Make like/dislike more visible

A user complained that when a song is liked, the "thumb up" button turns a yellowish color, but that color is almost indistinguishable to the white color used when the song is not thumbed up.

Migrate to latest Angular (or React?)

It's not sustainable long-term to use Angular 1.x. We need to migrate to the latest Angular, or alternately rewrite the UI in React. From a ease of port aspect, porting to Angular would be preferable.

Let users applaud songs

Currently, users can thumb up a song, or thumb down a song: a binary choice.

However, in reality users like some songs more than others. Chavah doesn't provide a way for users to express how much a user likes a song.

To address this need, let's provide a "clap" feature, ala Medium.

image

For songs that the user has thumbed up, allow them to press and hold a clap button that allows them to express how much they like that song.

Migrate to Raven 4

RavenDB 4 is a major new version running on .NET Core with major (10x+) performance gains and some excellent new features.

With the major version increment, there are breaking API changes. We should spin up a new branch and port Chavah to Raven 4.

Move Popular to the right side, Likes to the left

When a user isn't signed in, the whole right side is bare:

image

This is because unauthenticated users have no likes and no recent songs.

To fix this:

  • Move Likes to the left side
  • Hide Likes when empty
  • Move popular to the right.
  • Hide Recent when empty

Do this, and unauthenticated users will see this instead:
image

Song pick reason is always random

Currently, every song that is played says Chavah chose it for ...no reason at all.

image

We know this isn't true on the server; either the song pick reason isn't getting passed back to the UI, or the UI isn't handling it right.

Albums should support Hebrew names

Many songs on Chavah have Hebrew album names. Currently, we're pasting both the English translation and the Hebrew text into a single field. This is less than ideal as the text can wrap the Hebrew strangely as if it were a LTR language.

We should instead make albums have a field for both Name and HebrewName. Songs likewise should support both Album and HebrewAlbum.

Show new songs on Now Playing

New songs on Chavah should get more play time.

Given that we have ample vertical space on Now Playing, we should add a section for "new songs" - it will show a selection of songs from albums recently added to Chavah.

Admin: add songs to existing album

We've had several times now where an artist sends us a few songs of theirs...and at a later date, sends more. But Chavah has no way to add songs to an existing album.

We need that functionality. In admin, provide a way to edit an album, including adding songs to the album.

Admin page: songs

Often, I need to tweak a song's details, including which album it belongs to. Doing this now requires database edits.

Build an admin page that lets us edit a song. We'll probably want 2 admin pages: master and detail.

Song request should play for people who aren't signed in

Song requests currently only play for signed-in users.

This is a bummer because a majority of people who listen aren't signed in. Song requests are a great feature of Chavah and quite unique, making Chavah less of a playlist and more of a live station. And people like it!

Playing song requests for everyone will also encourage users to sign in and request their own songs.

Audio error causes music to stop

A listener has reported intermittent audio stopping:

I did want to say that I have had trouble listening lately. It has been stopping towards the end of a song, like it freezes, then I'll have to click on a different song to get it going again. Sometimes that works, sometimes it doesn't, and sometimes it will do it again where it cuts off the song... Is this a technical issue?? Our internet speed is good, and we don't have trouble on any other sites... I do so love listening to Chavah! It is a huge blessing to my home. :-) thank you for all you do, blessings, Sarah

After talking to her, she said that when it stops, it shows "Encountered an error" in the bottom left corner.

We need to write some code that better handles audio errors and moves to the next song.

Add a /popular page

This should show the top N songs ranked on Chavah. Maybe the top artists, top albums, top tags too?

Make Chavah a PWA

Chavah functions as a web app. Since it's an app, we'd like to be able to add Chavah to mobile home screen, support push notifications, perhaps have basic offline support, and even be listed in app stores.

The Progressive Web Apps (PWA) standards promise to make web apps first-class citizens on host operating systems: akin to a native app on mobile and desktop. It enables offline support, "add to homescreen/desktop", service workers, push notifications, and future app store support.

We've tested out Mads Kristensen's .NET Core PWA nuget package. It almost works. The problem is, it adds everything to the browser cache. This is problematic because it will add even MP3s to the cache, which will eventually overflow the cache quota.

Two paths we could take:

  1. Submit a PR to the .NET Core PWA package to support caching only certain resources, as suggested here.
  2. Custom code our own service worker and all the supporting bits to just cache the things we want.

I'm currently leaning towards the first option.

Add /likes page

Add a page to allow the user to browse and search through their liked songs/artists/albums/tags. We should navigate to this page when clicking the "likes" header on the home page.

Create a new 'Dev' branch

I prefer us to use Dev branch for the development work and master branch is being the main branch from which you can deploy to from.

Songs should have a field to store Hebrew lyrics

Many songs on Chavah are fully or partially in Hebrew. The lyrics for these songs gets a little strange, where we have multiple languages in a single text box.

Songs should have a space for English lyrics and Hebrew lyrics.

The edit song page will let users add English or Hebrew lyrics.

Alerts framework for success and fail messages

Currently, anytime a POST fails, the user isn't alerted to anything going wrong.

Likewise, we currently don't have any notification when things succeed (e.g. changing your profile picture).

Embed song isn't working

Users can embed songs in their own blogs and HTML pages,

image

Embed song used to work before porting to Angular. There are places around the web that have Chavah songs embedded (e.g. 14 Messianic wedding songs), but those embeds are now displaying an HTML frame for Chavah that never plays the song.

Fix this so that those embed URLs work correctly. Also, make the embed option more visible; one user just asked if it was possible to embed, even though that functionality's been there for awhile.

When editing a song lyrics/tags, the user should see their existing pending song edit

Users are making use of the song edit feature, contributing lyrics and tags for songs.

As an admin who approves/rejects those edits, I'll often see a user submit a song edit, only to submit a successive song edit to add additional tags. But it doesn't include the tags from their first edit.

This would be fixed if, when the user edits a song, it shows his pending edit; any changes will update the existing song edit from that user.

Menu should show navigation

On mobile, there's no way to access Trending, My Likes, Recent, Popular.

We should show these nav options in the menu. (Not just for mobile, but makes sense on all platforms.)

Custom stations

Several listeners have asked for the ability to create custom stations, seeded with one or more artists, albums, tags.

I think it's a great idea, and it's a feature many folks are already familiar with thanks to Pandora.

We could then build off this feature and publish some Chavah playlists available to users, e.g. Bruce Cohen music, Instrumentals, Israeli Hebrew, etc.

Allow users to undo a thumb-up or -down

A listener asks,

I'm wondering if I can undo a thumb up or a thumb down? I usually give a thumb-up for a song I'd rate 3.5 or above, and thumb down if I'd rate it 2 or below, and I'd do nothing if I'd rate it 2.5 or 3 out of 5 (which most songs fall into). The problem is, sometimes I thought I'd rate a song 3.5, so I gave it a thumb-up, but 10 seconds later I decided it's not that great, and I want to remove the thumb-up without giving it a thumb-down. Is that possible? Thanks again :)

Unfortunately, there's currently no way to undo a thumb-up or -down, other than changing from an up to a down, or vice versa.

If you've thumbed-up a song, clicking thumb-up again should undo it. Ditto for thumb-down.

POST calls shouldn't use URL params

Doing POSTs with URL params is causing issues with IIS; IIS will block some requests if it thinks the URL contains dangerous characters.

We should change all POST calls to passing arguments via body rather than URL params.

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.