SoundSieve backend for the iOS application
Version 1.04, 3/27/2015:
- attempt at including asynchronous connections unsuccessful. App Engine's callback implementation would make it way too hairy to do. As a result, I will be transitioning to an Express server running on either OpenShift or Heroku, possibly using only Redis for track data (and maybe a database for analytics/usage data)
- This will continue to run at soundsieve-backend.appspot.com, but look out for a new API written in Express
Version 1.03, 2/15/2015:
- added multi-genre functionality. url format is now using parameters only, i.e. /api?sort=&genre=&genre=...etc
- increased http response deadline so we get deadlineExceeded errors less frequently (ideally, while it's loading the app should have a loading screen or something) (maybe we can solve this with async?)
Version 1.02, 2/14/2015:
- now updates the database and memcache if over an hour old!
- attempt at pagination has been uploaded, but because of some error on soundcloud's API (fairly sure it's their end since I spent ~3 hours trying to figure out why I can't load past ~100 tracks) the main segment.py file instead just gets as many tracks from soundcloud as it's willing to spit out from the API call
Version 1.01, 2/8/2015:
- implemented modified version of Reddit's hotness algorithm to sort tracks based on hotness
- default sort option is still set to random, but tracks sorted by hotness can be access by <genre>/hot
Version 1, 2/8/2015:
- retrieves track and comment metadata from Soundcloud
- returns json for genre search queries
- implementation of comment density algorithm
- efficient data manage through memcache and datastore
- sorts returned list of tracks randomly (shuffle)
To do:
- weighted comments (e.g. if comment contains "boring" weight is -1, comment contains "awesome" weight is +2, else comment is worth 1)
- store upvotes/downvotes of song (swipe right or left)
- async requests for concurrent requests:
- store in memcache a boolean value for whether it's requesting or not
- if not requesting: send soundcloud api request and set bool var to true, callback function is to update the database with new info and set bool var to false
- then, retrieve info from memcache or db