Google Summer of Code 2011¶
Primary mentors: Mike Sheldon (Elleo), Jørgen Bøhnsdalen (jurg)
Backup mentors: Kuno Woudt (warp)
It's strongly recommended that students visit the Libre.fm IRC channel (#libre.fm on irc.freenode.net) and/or post to the mailing list (http://lists.nongnu.org/mailman/listinfo/librefm-discuss) to discuss their ideas with potential mentors prior to submitting their applications.
Integration with audio production software¶
This will require the creation of suitable web-service methods for allowing artists to publish their songs directly from their audio editors. In addition to writing the server side components the student should also write an example plugin for the Jokosher audio editor (http://www.jokosher.org), which will upload music files and licensing details to archive.org and use the web-service methods they create to pass these details on to a GNU FM instance.
(Mike Sheldon is also a Jokosher developer, so can help mentor this side of things).
The student will need to add the facility to create accounts and login via OpenID. In addition to OpenID support for the main web front-end it should be made possible to perform web-service authentication via OpenID as well.
This may not be enough work for a single GSoC project and could potentially be included as part of the GNU Social project below if a particularly capable candidate is found.
FOAF/GNU Social Integration¶
This project would make it possible for GNU FM to pull some data from GNU Social (http://www.gnu.org/software/social) and vice-versa, as such some aspects will require work on GNU FM and others on GNU Social.
From the GNU FM side the student should add the facility to pull in FOAF data from GNU Social (and optionally other services, such as identi.ca) and populate the user's friends list based upon it.
From the GNU Social side the student should create a simple plugin for GNU Social that can display statistics about a user's GNU FM account (e.g. recently heard tracks, favourite tracks, the ability to listen to that user's personal radio stream, etc.).
If the OpenID task is undertaken by another student then towards the end of the project the two students could optionally collaborate to make this functionality automatic when a user creates an account with a GNU Social OpenID.