Skip to content
Sanjeev Ghimire edited this page Feb 2, 2018 · 6 revisions

Short Name

Soccer Dashboard with Akka and ReactJS.

Short Description

In this code pattern, we will create a Soccer Dashboard for English Premier League. The dashboard is created by web crawling the https://www.premierleague.com/ website. The back end utilizes Akka Actor, the front end is done with ReactJS and the data storage is using IBM Cloudant. And the code is deployed on Cloud Foundry.

Offering Type

Cloud

Introduction

When designing computer applications, the programming model needs to consider scalability, resilience, fault tolerant and most importantly high performance. The system should be able to cope with network latency, memory usage, and high computation required by the system. To overcome these situations, Akka's actor model allows you to create actors to cope with the modern computer architectures.

Author

Sanjeev Ghimire

Code

The GitHub source links can be found here.

Demo

Video

Overview

Soccer fans are huge around the world. And there are series of popular weekly live games going around the world among which are English Premier League(EPL), La Liga, Italian Serie A, Bundesliga etc. And every week there are a lot of live feeds coming to each of these websites in the form of live scores, live commentary, fixtures, team standings, results etc. And there lacks a proper web application which can communicate with the providers and give a real-time feedback to the soccer fanatics whether on a web or mobile. Since Akka is an asynchronous way of building a powerful reactive, concurrent and distributed applications, the real-time dashboard for soccer leagues would be an ideal use case to be implemented using Akka.

Akka consists of actors. An actor is the smallest unit of your Akka-based application. An Akka is a container for several components. The components include actors state, behavior, mailbox, child actors and Supervisor Strategy. Akka ensures that the communication is through asynchronous messaging and its the only way to interact.

The main purpose of the pattern is to demonstrate how to define different Akka actors in an Akka cluster.

Flow

  1. Create actors for Akka
  2. Expose Akka rest APIs
  3. Crawler actor will start crawling and store information into DB
  4. Deploy the app into IBM Cloud Foundry
  5. Ready for user to interact with the app

Included components

  • Akka: A reactive stream toolkit
  • ReactJS: A JavaScript library for building user interfaces
  • Cloudant DB: A highly scalable and performant JSON database service
  • Cloud Foundry: An open source, multi cloud application platform as a service project

Featured technologies

  • Containers: Virtual software objects that include all the elements that an app needs to run.

Blog

Links