NeuroTechX / moabb

Mother of All BCI Benchmarks
https://neurotechx.github.io/moabb/
BSD 3-Clause "New" or "Revised" License
672 stars 175 forks source link

[Code] Create Front End #6

Open syswsi opened 7 years ago

syswsi commented 7 years ago

We are looking for people who want to create the front end for the MOABB project. We will be using github pages to create it.

jdpigeon commented 7 years ago

I'd be interested in working on this, depending on how much of what I already know can be used.

My skills: HTML/CSS + JQuery React Node.js A tiny bit of Flask/Django

I also know some really smart web developers who I used to work with.

Some questions I think could be answered before even beginning to design:

  1. What is this back-end going to look like? Are we going to store all the neural data ourselves? Will the algorithms and benchmarking run on our server? However it works will define how we build the front-end. I haven't heard of using github pages with anything that has a true backend. I'd suggest Heroku

  2. Are we going to want to have user accounts and authorization?

  3. How is the user going to submit a new dataset or algorithm? Upload their own python files? (sklearn pipelines?)

alexandrebarachant commented 7 years ago

awesome !

1 => The back-end is not a true back-end like in web dev. benchmark will run on users own machines, when done, the benchmark will dump a file saving the results, or will generate a piece of HTML that will then used by the front-end. it has yet to be defined. Right now, it's a CSV file containing performances for each algorithms and subject (see results folder). That's why i'm thinking about static page generator like jeckyll and github pages.

2 => No

3 => user will submit a pull request containing his code and generated results.

The reason i want to go this way is to simplify support and avoid having to run a server unless it is absolutely necessary. The goal is not to build a new kaggle, but to allow easier development and comparison of algorithm.

jdpigeon commented 7 years ago

Now that's starting to make sense. Forgive me for going all web dev.

In essence, we're just creating a fancy wrapper for this Github repo then, eh? That should be relatively easy to do then.

I'd say going ahead with Jeykll and Github pages sounds like the way to go. Maybe we can throw in some D3.js for cool visualizations of algorithm performance.

alexandrebarachant commented 7 years ago

Exactly, I think there is no need of fancy server stuff right now, and with a bit of JS it is possible to make something very nice to use.

I don't have a lot of idea on how to display algorithm perfs, but i think at least one global ranking page, highlighting the top 3 algorithms for each category, and one page allowing to compare any of two algorithm.

I have a few idea for the later, we can discuss that at a later point in time.

jdpigeon commented 7 years ago

Did some research and thinking of going with Hugo for a templating engine.

It's supposed to be fast and only requires a single binary to be installed, no python, node, or Ruby enviroment necessary.

jdpigeon commented 7 years ago

Also, I think we should use this color palette. It hints at the NeuroTechX colors and has indigo, which is an awesome color.

palette

alexandrebarachant commented 7 years ago

Looks good to me. As for hugo, as long as it is cross plateform, I don't see any problem.

Do you know if it can deployed for github pages. The nice think with jeckyl is that you don't need to generate the website manually, it's done automatically when you push a commit on the repo.

jdpigeon commented 7 years ago

Yep, automated deployment with Wercker. Maybe a bit more setup than Jekyll, but doesn't look too hard.