/alphabets

Winner project for the 2017 IBM Blockchain Hackaton. Football betting decentralised app on HyperLedger. Go API, Vue frontend.

Primary LanguageVue

AlphaBets

Build Status

logo

Chainblock applied to betting.

Alpha for innovation - Bets for football betting => AlphaBets

AlphaBets was created during the IBM Blockchain Hackaton and got the 1st place out of 80 teams. The challenge was to create an application using the Hyperledger Fabric technology in 4 days.

It is a decentralized football betting application, using the blockchain technology.

We built a Hyperledger Composer REST API, and used a football API (see below). We used Vue.js for the front-end and Golang for the back-end.

Here's an in-depth Google Slides presentation of the project, architecture, technological choices and UI.

Screenshot of the UI: Fixtures

SportMonks

Special thanks to SportMonks for giving us access to the Ligue 1. SportMonks logo

Getting started

# Front-end
cd client

# Get the dependencies
yarn

# Build the client
yarn build

# Run the Client with Hot-Reloading
yarn dev

# Back-end
cd ../server

# Get the dependencies
dep ensure

# Build the server
go build

# If your port 3333 is already used, set another
# Unix / MacOS
PORT=...
# Windows
SET PORT=...

Setup the SportMonks API Token

Get an API Token on https://www.sportmonks.com/sports/soccer/documentation

Either set the environment variable API_TOKEN before running the server, or create a secret.json file under the server/sportmonks directory:

{
    "token": "your_token"
}

Run the server

# Unix / MacOS
./server
# Windows
server.exe

Browse http://localhost:{PORT}

CI

Node

  • lint avec ESLint

  • TODO : unit testing

  • tests unitaires avec Karma / Mocha / Sinon

  • build

Go

  • lint : go lint
  • auto format : go fmt
  • build

Travis

Travis automatically runs tests and builds evrey push and pull request to every branch.

Deployment

Local deployment with Docker

Requires Docker to be installed and running.

docker build -t alphabets .
docker run --publish 3333:3333 --name alphabets --rm alphabets