SongBook Web App (v0.0.1)

So I wanted some way to easily see all our songs on our tablets without needing to go through hoops (storing on Dropbox and syncing, sending out emails to members, etc...) So I setup a really basic app I hope to really expand upon in the future. If you'd like to install it on your own server / domain, go for it. :)

Basic Screenshot:

A few things to note:

* I'm using a variation of ChordPro. Add your ChordPro to the Arrangements > Lyrics & Chords in the Song in Elvanto. Basic tags are supported, ({title}, {subtitle}, {soc}, {sob}, {soi}, {comment})

* I'm using a monospaced font because using sans-serif looks nicer, but is a pain to keep spaced correctly.

* Scrolling is up and down and I'll eventually be switching it to be a pagination system with side by side page support.

* I'm still working through the Oauth authentication and getting the refresh token workflow to work within Laravel Socialite. Should have that sorted next week. Just not a high priority for me at the moment.

* I'd like to add a touch icon so you can save it to the Home screen on iOS / Android / etc...

Hi Kennon!

I'm certain someone out there will find this useful! I always love seeing custom solutions like this with the API.

Feel free to send us any questions that you might have about the API.

Just to help out with the Oauth you can use our php API Wrapper which has the calls needed for this built in, or might just be a good part to look for ways to check if the token has expired.


Somehow I missed the API wrapper. :) I set one up using Laravel Socialite so it can tie into the built-in Laravel authentication. But I may use some pieces of your wrapper to get that sorted out quicker.


Ok, I just added a really crude way of selecting a key for each song that's on the service plan. This way guitarists can select the capo'd key, if they'd like. I plan to add some helpers and caching, so it stores these values over time.

Example of Key Selection

Just pushed another update that adds the following:

* Longer session times, so you shouldn't be logged out as often.

* Refresh tokens are active, so when it expires it will automatically get a new one.

* API calls are now cached for 60 mins, with a manual refresh button if you need to update more frequently.

* New icon and web app meta tag, so you can do a proper iOS home screen bookmark.

Overall this should vastly speed up the app and make it better to use.

Just pushed an update that removes the need to use ChordPro syntax. This should work better with Elvanto's syntax. So now you can simply define a chord chart like:


Some [C]chords go [G]here


[Am]We are [C]singing a lot  [G}

And it will format it with the song's title, arrangement name, and some extra formatting for choruses, bridges, instrumentals, etc...

Kennon, this is seriously awesome! I was going to start something like this.

Do you mind if I "borrow" and adapt as I'm not using Laravel?

Thanks mate,


Thanks Evan. Sorry for the late reply, I've been away for the past week. You're more than welcome to use this in any capacity you want.

Hey guys, are you still on it?
Is there a way to explain it a bit easier to a well-informed amateur computer guy like me (but not a pro when it comes to Installing stuff on servers...)

Not as much as I would like. I started down the road of having this work at a shared domain that would allow you to just enter your API credentials from Elvanto, but I haven't been able to finish that up yet. I've been super busy as we were launching our community groups for the Fall and I'm still trying to finish up some additional features that our music team wanted to see + finish up our church's updated website.

Anyway, if you have a server you want to put this on and don't mind waiting until next week, I should have a few mins to help get it installed.

It'll just need the following to run:

PHP 5.6+

MySql 5.6+

Your Elvanto API details

Server Admin rights

Just let me know if that's a route you want to go.

Btw, there are still a few bugs that I'm trying to fix related to sessions and expiring access tokens, so that might cause a couple annoyances. I really wish I had more time to make this better, as I really love the rest of Elvanto. 

I know this is an old thread, but I would love some help setting this up for our worship dept if you can spare the time.

Hey Chris,

I can try and give you a hand. The above requirements are still true. I would probably try and use a host that supports PHP 7 though at this point. Again, I wish I had more time to improve this and make it easier to tack onto everyone's Elvanto instance, but I just don't. :/

How many people are on your music team?

Do you already have a server setup that this can be deployed to, or do you need to have that setup as well?

Thanks Kennon. I have a windows 2008R2 server setup, but that's it. I'm not as familiar with this and so haven't had a ton of time to research the how-to in getting the php working.

Login or Signup to post a comment