JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/botify/1.0.0-beta4/botify-sdk.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="root">
  <table id="analyses-table" class="table">
    <thead>
      <tr>
        <td>Id</td>
        <td>Date</td>
        <td>Status</td>
        <td>Nb URLs</td>
      </tr>
    </thead>
  </table>
  <div id="analysis-data" class="row hide">
    <div class="col-md-6">
      <div>
        <label>Compliant URLs:</label>
        <span id="compliant-urls"></span>
      </div>
      <div>
        <label>Percentage Compliant URLs:</label>
        <span id="percentage-compliant-urls"></span>
      </div>
      <div>
        <label>Average Load Time:</label>
        <span id="average-load-time"></span>
      </div>
    </div>
    <div id="http-code-distribution" class="col-md-6"></div>
    <div class="col-md-12">
      <label id="sample-urls-label"></label>
      <table id="sample-urls-table" class="table table-condensed">
        <thead>
          <tr>
            <td>URL</td>
            <td>Depth</td>
          </tr>
        </thead>
      </table>
    </div>
  </div>
</div>

CSS

#analyses-table tr.clickable:not(.active) {
  cursor: pointer;
}

JavaScript

// Token with only reading right on a demo project
var token = '5200a30fb41f179e6dadab3b4e2d40f83a0a8ccd';
var username = 'adam_warlock';
var projectSlug = 'demo-project';

var $analysesTable = $('#analyses-table');
var $analysisData = $('#analysis-data');
var $compliantURLs = $('#compliant-urls');
var $percentageCompliantURLs = $('#percentage-compliant-urls');
var $averageLoadTime = $('#average-load-time');
var $httpCodeDistribution = $('#http-code-distribution');
var $sampleURLsLabel = $('#sample-urls-label');
var $sampleURLsTable = $('#sample-urls-table');

BotifySDK.authToken(token);

// Fetch last 5 analyses and populate table
function displayAnalyses() {
  BotifySDK.AnalysisController.getAnalyses({
    username: username,
    projectSlug: projectSlug,
    size: 5,
  }, function(err, response) {
    response.results.forEach(function (analysis) {
      var slug = analysis.slug;
      var date = new Date(analysis.date_launched).toDateString();
      var status = analysis.status === 'success' ? 'finished' : analysis.status;
      var nbUrls = analysis.status === 'success' ? analysis.urls_done : '-';

      $analysesTable.append(
        $('<tr>')
          .addClass('slug-' + slug)
          .addClass(analysis.status === 'success' ? 'clickable' : '')
          .on('click', function(e) {
            analysis.status === 'success' && displayAnalysisData(slug);
          })
          .append($('<td>').text(slug))
          .append($('<td>').text(date))
        	.append($('<td>').text(status))
      		.append($('<td>').text(nbUrls))
      );
    });
    
    response.results.every(function (analysis) {
    	if (analysis.status === 'success') {
        displayAnalysisData(analysis.slug);
        return false;
      }
      return true;
    });
  });
}

// Fetch analysis data and display metrics and chart.
function displayAnalysisData(analysisSlug) {
  $analysisData.addClass('hide');
  $analysesTable.find('tr').removeClass('active');
  $analysesTable.find('tr.slug-' +...