Development/Summer of Code/2015

From MusicBrainz Wiki
Jump to navigationJump to search


This year Robert Kaye, Ian McEwen and Michael Wiencek will probably be amongst our mentors. That's ruaok (Robert), ianmcorvidae (Ian) and bitmap (Michael) on IRC, if you want to come and speak to us first. Some potential mentors are listed by each project; this is far from a normative list, but it might give you somebody to ask about the project.


This is our set of starting ideas for 2015. Add more ideas if you have them!

Add in site messaging in MusicBrainz

Proposed mentor: (none yet)
Languages/skills: Perl and/or Python, Postgres

Currently MusicBrainz only has a primitive system for sending messages to other editors. We would like to improve this system and add a few more features that are specific to how MusicBrainz works. The exact details of how it would work would need further discussion, but some ideas include:

  1. Have options to let people choose whether to receive emails, notifications, or a mixture of both.
  2. Have a daily summary email that says how many unread notifications and messages you have. Something like that would probably be good for people who don't visit the site very often.
  3. If someone has unread notifications for more than $x days, send them an email anyway.
  4. Include a visual notification on the site to indicate that a user was pending messages.

The student interested in working on this should engage with the community and work to determine the actual list of features to be implemented as part of this project. The list above only serves as a starting point -- we expect students to fully develop this list before submitting a proposal.

See also: MBS-1801

Create a unified browse and search interface

Proposed mentor: nikki?, bitmap?
Languages/skills: primarily Javascript, probably some Perl, Java/Lucene would be a bonus

Currently MusicBrainz has no proper interface for exploring the database. We have a Lucene-based search, but in order to use it effectively, you have to read about the advanced search syntax and manually construct a query. We would like to improve the search interface and make it more flexible and easier to use - let people enter search terms and advanced syntax if they want, but also give people ways to simply click things to explore or filter the results without needing to know Lucene syntax.

If you are interested in doing this, it's important to familiarise yourself with what is currently possible with the search - what you can search for (see the main search page and syntax documentation) and what data is returned (see Development/XML Web Service/Version 2/Search).

See also:

Finish implementation of SOLR Search

Proposed mentor: ianmcorvidae
Languages/skills: Java, SOLR, Lucene

Last year mineo created a new SOLR based search infrastructure as part of his Summer of Code project. The complete project was beyond the scope of the summer, so we would like to finish the project this year. Interested students should take a look at the following repositories:

This project will be split into multiple parts:

  1. Finish implementing the remaining needed features to bring it up to feature parity with our existing search setup.
  2. Deploy the project to a test server
  3. Fix bugs that the community finds
  4. Help deploy into production

This project will require an advanced student who is already comfortable with programming and who wants to gain some DevOps experience. If you are interested in this project, please come to the MusicBrainz devel channel on IRC and ask about this project. Close involvement with the community is a must!

Moderation interface for CritiqueBrainz

Proposed mentor: ruaok
Languages/skills: Python, Postgres, Flask

Last year we released beta version of our new CritiqueBrainz project. We have a system for reporting spam, but no good interface to act on reports that come in from it. It would be great to have a friendly UI for moderation tasks like this.

There are a lot of other useful things that can be done with CritiqueBrainz. Some people request support for more MusicBrainz entity types to review. There are a lot of untouched tickets in the bug tracker which can be fixed as a part of this project. Or you can come up with your own idea!


Proposed mentor: ruaok or alastairp
Languages/skills: Python, Postgres, Flask

AcousticBrainz is our new project that aims to crowd source acoustic information for all music in the world and to make it available to the public. We already have low-level information about more than a million tracks. What we need is a good way for users and developers to interact with all this data and help improve algorithms that are used to analyze it.

We're interested in developing a tool that lets people build datasets - mappings between tracks in acoustibrainz and attributes that represent them. These attributes could be broad and subjective, such as a genre and mood, or specific descriptions, such as instrumentation or vocal qualities. We have the technology built to develop machine learning models given examples of these mappings, but we lack a tool to actually build them. This tool should let people choose attributes and attach them to musicbrainz ids. Then it should convert the data into a form that our existing tools can understand to create the training model, and then present some evaluation statistics such as the accuracy of the new model.

It would suit someone with experience or an interest in machine learning algorithms, though the majority of the project will probably involve creating instructure around our existing algorithms.

You can read more information about acousticbrainz and some of the existing models that we have created on our blog

Add social features to Events

Proposed mentor: ruaok
Languages/skills: Perl and/or Python, Postgres

We recently added event (read: concerts) support to MusicBrainz. Our main motivation was to add this feature for historical concerts, but it can also be used for future concerts. In the past the crowd-sourced concerts on were the best place to find concerts, but in the past few years has begun to fade from people's awareness. There is a possibility that MusicBrainz can take the former place of and become the best crowd source concert information site on the net. In order for this to happen, we would need to add a few more features to MusicBrainz:

  • Social notifications: MB users should be able to post to Facebook/Twitter when they do plan to attend a concert.
  • Other features: What features should we add to build a community around concert information curation?

These social features are important for building a community of users around concerts. The goal is to engage users to enter information about concerts and venues and then talk about upcoming concerts. The more people use MusicBrainz to talk about concerts publicly, more people will get drawn in to improve the concert listings in MusicBrainz.

About proposals

Before you dive in and send a proposal to us through Google, it's a good idea to take some time and learn about the MusicBrainz community. At MusicBrainz we pride ourselves for having a strong community - most of us know each other in some way, and some of us know each other face to face from development summits.

A good way to get a feel of this would be to lurk around in IRC, or to talk about your proposals on the mailing lists. However, starting off by sending private messages to potential mentors is not a good way to introduce yourself to the community. Please don't do that!

If you're not sure where to start, Development/Summer of Code/Getting started might help.