judahgabriel / chavah Goto Github PK
View Code? Open in Web Editor NEWChavah Messianic Radio is the very best Messianic Jewish and Hebrew Roots music on the web.
Home Page: https://messianicradio.com
License: MIT License
Chavah Messianic Radio is the very best Messianic Jewish and Hebrew Roots music on the web.
Home Page: https://messianicradio.com
License: MIT License
Clicking on the "recent" header on the home page tries to navigate to /#/recentsongs, but it doesn't exist and navigation fails.
The admin logs page is busted because we've changed the underlying storage mechanism. Fix this.
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.
Would be great if you could see the overall playlist
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.
@JudahGabriel I got the latest code and I think to improve the navigation for signed-in users it is beneficial to add "home" menu.
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."
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.
Currently, minimizing the Chavah Windows app causes audio to pause. We should enable background audio.
Currently working through this with Windows Dev support team.
On iOS (and on Android?), clicking Share -> Copy Link doesn't actually copy the link.
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.
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.
If a user is not signed in and he tries to submit lyrics or tags, he gets a blank screen. Instead, it should redirect to sign-in.
Given we're a PWA now, this might be easier than expected. https://www.pwabuilder.com will generate iOS, Android, and Windows Store packages from an PWA manifest.
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.
We've just setup a Patreon page for monthly support. We should integrate this into Chavah to help support the site and allow listeners to share the burden of cost.
Add python based Docker instance for ML processing of the Audio utilizing this library: https://github.com/tyiannak/pyAudioAnalysis
Since the application is written in C# develop models and ML with https://github.com/dotnet/machinelearning
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.
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.
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.
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.
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.
A Chavah user said sharing should be easier from her phone.
For iOS, we could use this Cordova plugin to invoke native sharing UI.
At bare minimum, we can invoke the upcoming navigator.share web standard to invoke native share UI. This is currently only supported by Chrome on Android.
When a user isn't signed in, the whole right side is bare:
This is because unauthenticated users have no likes and no recent songs.
To fix this:
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.
In our port to .NET Core, the ArtistsController has been removed (woops - my fault!), even though the client uses it for the donation page. Bring it back.
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.
When the user clicks a trending song, it plays for him. Unfortunately, it doesn't contain the song like information, so the song shows unliked even if the user has already liked that song.
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.
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.
Chavah should allow for users to chat with other signed-in users. This will help build a community of Chavah listeners. Consider using the new SignalR for ASPNetCore 2.1
Add MailHog Docker Container for emails testing while in development.
https://github.com/ian-kent/MailHog
https://hub.docker.com/r/mailhog/mailhog/
Docker-compose entry
mail:
image: mailhog/mailhog
ports:
- "8025:8025"
- "1025:1025"
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.
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.
This should show the top N songs ranked on Chavah. Maybe the top artists, top albums, top tags too?
The new .NET Core features better performance along with nifty features like background task via the new IHostedService.
This will also enable us to utilize Raven.Migrations and the new Raven.StructuredLog.
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:
I'm currently leaning towards the first option.
Songs in Chavah are linkable, e.g. Troy Mitchell - Isaiah 53.
This is awesome for users, but softly hurts artists; people can listen to full songs without paying.
To compensate artists, if a song URL is loaded, show a dismissable banner at the top of the page urging the user to donate to the artist via our existing donate page.
Renaming a tag in the admin interface throws a server error.
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.
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.
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.
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).
Users can embed songs in their own blogs and HTML pages,
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.
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.
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.)
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.
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.