ml_competition_platform

Kaggle-like machine learning competition platform

47
5
Ruby

This README is still work in progress

Machine learning competition platform

  • Machine learning platform just like private Kaggle written in Ruby on Rails framework.

Overall Architecture

image

Demo environment

URL

https://demo-ml-competition-platform.herokuapp.com/

Demo user account

ID [email protected]
Password ^dvTT0JgIPS4V@RWW$Kw

Sample JSON file for submission

Developer’s manual

How to setup development environment

Deploy API server

Setup environment variables.

cp .env.sample .env
vim .env

Copy the following text to .env file.

METRICS_API_ENDPOINT=http://host.docker.internal:8000/
METRICS_API_AUTH_KEY=secret_key  # In production environment, a strong key is recommended.

About METRICS_API_AUTH_KEY

  • METRICS_API_AUTH_KEY is used for authorization with API server to calculate metrics
  • Therefore, in production environment, it is recommended to use METRICS_API_AUTH_KEY value that cannot be easily guessed.
  • METRICS_API_AUTH_KEY value should be matched to API_KEY_TOKEN value in API server

Build docker container with docker-compose

$ docker-compose run web bundle install
$ docker-compose run web rails db:setup
$ docker-compose up

Create User Account

  • create admin account with the following command in rails console.
User.create(email: '[email protected]', password: 'password', name: "admin_user", role: "admin")
  • in case of creating normal user account, execute the following command.
User.create(email: '[email protected]', password: 'password', name: "test_user", role: "member")

Server URL for development environment

http://localhost:3000

Web API to calculate metrics

  • To calculate metrics to determine ranking of each competitor, Web API written in Flask should be also deployed.
  • The github code of this Web API server is here

License

MIT