Skip to content
Eric Carmichael edited this page Dec 3, 2018 · 7 revisions

What is Chahub?

Chahub is a resource aggregator for machine learning researchers and students. We track many machine learning competitions, datasets, and competitors.

How do I embed it?

You can embed Chahub as an iframe, like how we have on Codalab: image

To embed without any preset provider (aka producer):

<iframe src="https://chahub.org/?embedded=1" frameborder="no"></iframe>

To embed with a preset provider:

<iframe src="https://chahub.org/?embedded=1&producer=<selected producer id>" frameborder="no"></iframe>

What is a "provider?"

Providers are sources for machine learning information, like the Rapid Analytics and Model Prototyping (RAMP) platform. Providers can actively send data to Chahub (as demonstrated below) or they can request Chahub administrators to pull data from their site daily.

How do I become a provider?

Passive provider

Email info@codalab.org and request that we start pulling data from your site, please specify endpoints and the API used to grab this data. Typically this information would include:

{
    "remote_id": "string-unique-identifier",
    "title": "Comp title",
    "description": "Comp description",
    "created_by": "Competition_organizer_username",
    "start": "date ISO formatted",
    "end": "date ISO formatted",
    "logo": "https://logos.com/logo.png",
    "phases": [{
        "index": "0",
        "start": "date ISO formatted",
        "end": "date ISO formatted",
        "name": "Name",
        "description": "Short desc",
        "is_active": "True"
    }],
    "participants": [{
        "user": "participant_username"
    }],
    "is_active": "True",
    "participant_count": "10",
    "prize": "10000"
}

Active provider

You must request an API key from a Chahub admin (email info@codalab.org to request this) and then use the API to make requests to add information to Chahub.

A provider can expose an API and request that Chahub creates a daily scraper for this endpoint. The scraper will update data for any competitions it finds, if they already exist in the database. You can also directly push information to Chahub using the above Chahub API.

For example, if you wanted to post a competition (or update an existing one):

import requests


url = "https://www.chahub.org/api/v1/competitions/"
data = {
    "remote_id": "unique-id-for-this-competition-to-be-updated-later",
    "title": "Competition Title",
    "url": "http://your-website.com/competition",
    "participant_count": 10,
    "active": True,
    "published": True,
}

response = requests.post(url, data, headers={
    'X-CHAHUB-API-KEY': "producer-api-key",
})