/setlist

A web app for bands built on sinatra and redis

Primary LanguageRuby

setlist

Add songs, organize into sets, print setlists.

DB Schema

###Global###

  • global/nextUserID
  • global/nextBandID
  • global/nextListID

###Auth###

  • auth/<auth_key> = <user_id>

###Signup###

  • signup/<signup_token> = {email: <email>, password: <hashed>}

###User###

  • user/<user_id>/email = email address
  • user/<user_id>/password = hashed password
  • user/<user_id>/bands = set of <band_id>s
  • user/email/<email_address> = <user_id>
  • user/<user_id>/auth = if user is logged it. their current <auth_key> (not used. we currently allow a user to log in multiple places)

###Band###

  • band/<band_id>/name = band name
  • band/<band_id>/users = set of <user_id>s
  • band/<band_id>/admins = set of <user_id>s which are admins for the band
  • band/<band_id>/songs = set of <song_id>s
  • band/<band_id>/lists = set of <list_id>s

###List###

  • list/<list_id>/name = list name
  • list/<list_id>/length = number of minutes total
  • list/<list_id>/songs = a list of "123:songname" strings