mcruncher / worshipsongs-android

Android app for Worship Songs
GNU General Public License v3.0
8 stars 8 forks source link

[Feature request] Live-share favorite lists #549

Closed pixel2user closed 1 year ago

pixel2user commented 3 years ago

Story

As a Worship Leader, I want to live-share a favourite list in OpenLP service file Lite format (OSZL) with my team members through a shared Dropbox folder So that the team members can view the updates I make to the list

Conditions of Acceptance

Scenarios

Scenario 1 Given a shared Dropbox folder exists And the user has configured the "Live-share" Dropbox folder in the app When a song is added to a "Live-share" favourite list Then a OSZL file should be created in the shared Dropbox folder

Scenario 2 Given a shared Dropbox folder exists And the user has configured the "Live-share" Dropbox folder in the app And the shared folder has 2 OSZL files When the user views the "Live-share" tab Then two "Live-share" favourite list should be displayed

Scenario 3 Given a shared Dropbox folder exists And the user has configured the "Live-share" Dropbox folder in the app And the shared folder has a OSZL files And the songs in the OSZL file are not present in the songs db of the app When the user views the respective "Live-share" favourite And taps the respective song Then the lyrics of the song should be displayed

Originally posted by @rafaeljohansen in https://github.com/mcruncher/worshipsongs-android/issues/221#issuecomment-788972278 Meaning that you only need to share the list one time. Then, when adding new songs to the list it also continuously updates for the worship members that have clicked the sharing link. This means that the worship team closely can prepare for the songs as the worship leader adds them on the go during the week.

  • I understand that it could be difficult to do live-sharing as the app is serverless. I don't have a lot experience with these things, but would it maybe be possible to always push a remote copy of the favorite list to the same github repository that is used for storing the songs.sqlite database? If this requires github accounts for all users that want to push live-sharing, then surely it would be a bit limited, but maybe still possible..
pixel2user commented 3 years ago

@rafaeljohansen - Do you really store your songs.sqlite database in a github repo? We share it via dropbox. (Edit: To do so, we have moved the OpenLP data folder to the Dropbox folder. At the moment we use Windows and Linux desktop systems, but would want to use Android based devices, too!)

rafaeljohansen commented 3 years ago

@GermanGospel - Until now we haven't really shared the songs.sqlite database at all. We use an app called "Worship leader" to remotely store all our song so that the worship team can use them, edit, add chords and make service lists. But because this is a separate system to OpenLP, we need to keep the two systems in sync manually, which obviously isn't optimal. However, when I discovered "Worship songs" I also created a GitHub rep for our database (just in the same way the creators of this app did with their database). And yes, I think for our use case it is much safer to share the database through GitHub opposed to Dropbox, as I don't want to risk a corrupted database or that anybody deletes it by accident. Anyway, first of all I really hope the developers will add editor and .OSZ import/export functionality so that we can switch to having one interconnected system across desktop and mobile, instead of two separated systems.

sskjames commented 3 years ago

Thanks @GermanGospel for creating this issue and thanks @rafaeljohansen for bringing this up.

We would like to get your opinion about this nice suggestion from @rafaeljohansen which might actually help us provide this feature.

  • I understand that it could be difficult to do live-sharing as the app is serverless. I don't have a lot experience with these things, but would it maybe be possible to always push a remote copy of the favorite list to the same github repository that is used for storing the songs.sqlite database? If this requires github accounts for all users that want to push live-sharing, then surely it would be a bit limited, but maybe still possible..

It might be a bit challenging to use a github repository for this as I don't think we should let the app make changes to a repository which might involve commits and pushes. But doing the same via Dropbox looks much more achievable.

Please share your thoughts.

rafaeljohansen commented 3 years ago

@sskjames - Yes, I agree! Even though we keep the songs.sqlite database in a GitHub rep, it would make totally sense to sync the service files (.OSZ) across Dropbox.

At the moment, we are three worship leaders in our church. Then we could have three "live-shared" .OSZ files in a Dropbox folder that is shared with the whole team, like e.g. "worshipleader-1.osz", "worshipleader-2.osz" and "worshipleader-3.osz". These files could then directly be displayed as favorite lists on the phones/tablets for all team-members, editable only for the creator of the list but viewable for everyone that has access to the shared Dropbox folder. And when it's time for service, the .osz file can simply be imported from Dropbox to the OpenLP desktop that projects the lyrics for the congregation. If new songs were added through the .osz file, after the service the updated songs.sqlite database is simply (in our case) pushed to our GitHub rep (or Dropbox for @GermanGospel) and the users can tap "Update songs" in the app to sync with the latest version.

However, it should anyway be possible to auto-import new/edited songs to the app directly from the shared .osz files, so that the worship leaders can add or customize songs with chords etc. in the favorite lists, letting the team prepare during the week.

sskjames commented 3 years ago

Thanks @rafaeljohansen for the detailed input. Now we can understand this requirement much better.

Regarding

However, it should anyway be possible to auto-import new/edited songs to the app directly from the shared .osz files, so that the worship leaders can add or customize songs with chords etc. in the favorite lists, letting the team prepare during the week.

I think there is already an issue for that (#326). We can address the "import" part through that issue. Is this okay with you?

rafaeljohansen commented 3 years ago

@sskjames - Yes, of course. 👍 My excuses for mixing it together.

The functionality to edit and add songs in the app I've been writing about should maybe also be assigned to its own issue? Regarding this, I think it would be a clean solution to provide the ability to edit and add songs directly in the favorite list (.OSZ file), not necessarily in the main song list (local version of the songs.sqlite database). If it is possible to make the favorite list a direct "front end" interface for the "back end" .OSZ file stored in Dropbox, then we could have complete freedom to edit and add new songs here.

It would work like this:

Sorry if I'm repeating myself, just trying to make my thoughts as clear as possible. And again, thanks a lot for considering my requests. It will be greatly appreciated!

sskjames commented 3 years ago

Hi @rafaeljohansen, thanks for all these suggestions. It looks interesting. Please file a separate issue for this. But please take note that, it would take some time to support all these features as we work on this only in our free time. We will try our best to provide all these features as quickly as possible.

rafaeljohansen commented 3 years ago

Thanks @sskjames. That's very understandable! Now I've just added a new issue for the things mentioned above.

sskjames commented 3 years ago

Thanks to the contributions by @madasamys. The changes have been merged to master and released to the Beta Store. Kindly test and give your feedback.

sskjames commented 3 years ago

As this story is too big, we've decided to split this and @madasamys is working on #558.