My Gsoc experience with AcousticBrainz

gsoc-2016
gsoc
Tags: #<Tag:0x00007f2a00efbb78> #<Tag:0x00007f2a00efb9c0>

#1

Hi,
I am a student involved with Acousticbrainz in a Gsoc Project. Here I present the complete work I did during the Gsoc term and also explanations for the same.
The idea of this project was to build a client that allows users to run the machine learning jobs on the datasets created by them on their own machines rather than to run on the Acousticbrainz server.
Below is the link to all the code I wrote during the term.

1.This is the link to the server side API code. https://github.com/metabrainz/acousticbrainz-server/blob/master/webserver/views/api/v1/dataset_eval.py.

2.This is the link to the tests for the server API: https://github.com/metabrainz/acousticbrainz-server/blob/master/webserver/views/api/v1/test/test_dataset_eval.py

3.This is the link to the client code. https://github.com/metabrainz/acousticbrainz-dataset-runner .
The core evaluation code in the client repo is just a modification of the evaluation code from the server. It was not written from scratch during the Gsoc. All other code was written by myself with modifications from Alastair Porter (Mentor for this project).

The list of merged and unmerged PRs before 23/08/16:

  1. https://github.com/MTG/gaia/pull/43 : This merged PR updated the waf version so as to be able to make the PPA on ubuntu launchpad.
  2. https://github.com/metabrainz/acousticbrainz-server/pull/193 : This merged PR shows the remote evaluation option to the user and makes the necessary schema changes.
  3. https://github.com/metabrainz/acousticbrainz-server/pull/202 : This merged PR gives list of pending jobs which need to be evaluated remotely for a particular user (who is logged in).
  4. https://github.com/metabrainz/acousticbrainz-server/pull/209 : This unmerged PR implements the API endpoint that can return low level details for more than one recording.
  5. https://github.com/metabrainz/acousticbrainz-server/pull/207 : This unmeged PR implements the API endpoint which return details for a specific job.