Development/Summer of Code/2019/ListenBrainz

From MusicBrainz Wiki
Jump to navigationJump to search

ListenBrainz is one of the newest MetaBrainz projects. Read more information on its homepage.

Getting started

(see also: Getting started with GSoC)

If you want to work on ListenBrainz you should show that you are able to set up the server software and understand how some of the infrastructure works. Here are some things that we might ask you about

  • Show that you understand the goals that ListenBrainz wants to achieve, which are written on its homepage
  • Install the server on your computer or use the Vagrant setup scripts to build a virtual machine
  • Create an oauth application on the MusicBrainz website and add the configuration information to your ListenBrainz server. Use this to log in to your server with your MusicBrainz details
  • Use the import script that is part of the ListenBrainz server to load scrobbles from last.fm to your ListenBrainz server, or the main ListenBrainz server
  • Use your preferred programming language to write a submission tool that can send Listen data to ListenBrainz. You could make up some fake data for song names and artists. This data doesn't have to be real.
  • Try and delete the ListenBrainz database on your local server to remove the fake data that you added.
  • Look at the list of tickets that we have open for ListenBrainz and see if you understand what tasks the tickets involve
  • If you want to, see if you can contribute to fixing a ticket. Either add a comment to the ticket or ask in IRC for clarification if you don't understand what the ticket means

Ideas

Create beautiful charts/graphs for user behaviour

Proposed mentors:mayhem, alastairp
Languages/skills: javascript, D3, data science, graphing, visualization, data architecture

ListenBrainz now has a statistics infrastructure that collects and computes statistics from the listen data that has been stored in Google's BigQuery tool. For this summer we are looking for a student who has some design skills and a general feel for the design process to help us build beautiful graphs from our collected user data. It is easy to create crappy looking graphs that are not compelling to the end user -- we can do that ourselves. If you are interested in working with us over the summer, you'll need to appear in IRC and discuss your ideas with potential mentors -- be prepared to demonstrate some prior work that illustrates your competence in design and javascript. And ideal candidate would already know the D3 toolkit we intend to use for our graphs.

Create summary data from ListenBrainz

Proposed mentors:mayhem, alastairp
Languages/skills: Python, BigQuery, data architecture

The ListenBrainz project is on the cusp of being able to create useful data (e.g. artist popularity, similar artists, similar tracks) for the use and display in the MusicBrainz project. The scope of this project includes some data gathering from BigQuery and the harvesting of data from our planned recommendation engine and then exposing it to an internal API that the MusicBrainz site can use to display data that is related to the data shown on MusicBrainz pages. This project does not include writing a recommendation engine.

This project should periodically collect data from BigQuery and/or master archive copy of the listen data in InfluxDB and make it available in an API (a flask application) so that if the MusicBrainz site would like to fetch information about a given artist, this service can quickly (i.e. from cache, without running a slow query) serve this data for inclusion in the MusicBrainz web pages.