SlideDeck.io – A repository of great HTML presentations
presentation_pfe_shuffler
View Github Repository
Open presentation in a new window
mbenabda
See all presentation from mbenabda
presentation_pfe_shuffler
0
0
presentation_pfe_shuffler
Presentation of my internship at shuffler.fm
On Github
mbenabda / presentation_pfe_shuffler
Hi I'm Mehdi Ben Abdallah
Shuffler ?
founders: Tim Heineke & Marcel Corso
music overload = hard to find new relevant content
music blogs have genre-specific relevant content
What did I work on ?
learning RoR by correcting bugs
python RESTful API v2
SOAP server: Shuffler on Sonos
Why an API v2 ?
why an API v2 ?
overload of the web application server (legacy code)
+ evolution of the data model
+ wish to open the new data to developers
= need for a unique & up-to-date access point
API: From v1 to v2
pagination
new Resources
channels
users
API resource: channels
channels
GET /channels/{channel_key}
API resource: users
GET /users/{user_id}
favorites
GET /users/{user_id}/favorites
GET /users/{user_id}/favorites?track_id={track_id}
GET /users/{user_id}/favorites/{favorite_id}
POST /users/{user_id}/favorites
DELETE /users/{user_id}/favorites/{favorite_id}
subscriptions
GET /users/{user_id}/subscriptions
GET /users/{user_id}/subscriptions?entity={entity}
GET /users/{user_id}/subscriptions?entity={entity}&entity_id={entity_id}
GET /users/{user_id}/subscriptions/{subscription_id}
POST /users/{user_id}/subscriptions
DELETE /users/{user_id}/subscriptions/{subscription_id}
API: From v1 to v2
General approach:
check parameters
get cached result when available
no cache: execute SQL request & cache result
format & send response
why the Sonos app ?
bring more users to the blogs
bring the blogs to the users
more freedom for the users on how they consume shuffler's music
How it works
Tools box
Ruby on Rails
SOAP support : wash_out
eg. of SOAP action mapping
Still to be done
submit the service to sonos
Conclusion (1/2)
Applied concepts seen at school: cache, SOAP (XML, XSD, RPC), sys admin
Learned new technologies & concepts:
Ruby on Rails
fingerprinting
profiling & benchmarking
Agility & Scrum
Autonomous work = Self-training
Team work experience
Improved english communication
Conclusion (2/2)
API works & is live
windows phone app uses it
Sonos app needs DB slowness to be solved before submission
Contacts
mehdi.se.insat@gmail.com
marcel@shuffler.fm
we@shuffler.fm