Banshee: Integrate with more REST API Services (SongKick and FanArt.TV)
I will integrate Banshee with more REST API Services - namely SongKick and FanArt.TV. Thanks to that user will be shown a concert suggestions and artists' graphics in the music library.
The aim of a project is to improve user experience by writing two plug-ins that use REST Services.
First, I will implement a plug-in that presents concert suggestions obtained from a SongKick based on user's location. It can be implemented as a tab displayed on left-hand side (e.g. under "Last.fm" in new section) or as a panel that can be embedded in UI (depending on a feedback). It will store preferences in GConf. Data will be updated in user-defined interval and cached locally. Appropriate preference panel or tab will be available for location input. Concerts will be chosen based on location, ratings of tracks and playback count. User location will be validated.
FanArt.TV functionality will download artists' images and display it in appropriate places in a music library and in "Track properties" dialog. Non-square images will be cropped or UI will be modified so that non-square images will be displayed in a pretty way. Cache with long expiration time will be implemented to avoid redundant REST API calls.
* Raport 1
* Raport 2
* Raport 3
* Raport 4
17 – 28 June - investigation of APIs, requesting access keys; beginning of coding (this part will overlap with my exam session – I don't know exact dates of my exams)
29 June – 10 July – writing back-end for SongKick (sending requests and parsing replies; persistent storage of preferences and retrieved information; periodical update of data)
11 – 21 July – discussing UI for SongKick (proposing a couple of images with possible UI modifications); creating UI for SongKick (a tab or a panel, preference panel and notifications)
22 – 28 July – testing and improvements of SongKick plug-in
29 July – 11 August – adding location validation (and, maybe, auto-completion), smoothing of UI, more testing of SongKick plug-in, fixing bugs
12 – 25 August – writing back-end for FanArt.TV (sending requests and parsing replies, caching; querying a server in the background when a music library is updated)
26 August – 1 September – discussing FanArt.TV UI (proposing a couple of images with possible UI modifications), UI modification to show artists' pictures (based on feedback from discussion)
1 September – 8 September – improvements in UI for FanArt.TV; pretty display of non-square images (may require changes in back-end)
9 September – 16 September – testing and bugfixing of FanArt.TV functionality
17 – 24 September – some of following tasks:
- UI improvements (e.g. new concerts count, personalization of concert notification)
- bug fixing or improvements in both functionalities (e.g. getting location from Gnome settings/some geolocatiocation API; support for multiple locations)
- another task (e.g. integration with other REST APIs - this will allow geolocation or allow user to "Like" an artist on Facebook)
- implementing features that were requested by users
- implementing lacking functionality (in case of delay)
END OF GOOGLE SOC 2013
Vast majority of code that I've written is available on banshee-community-extensions gitorious repo. I discussed my code on banshee-devel-list on August and September 2013. Some commits proposed by me on the list are already merged into banshee.