first commit
This commit is contained in:
16
core/templates/includes/footer.html
Normal file
16
core/templates/includes/footer.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!-- Footer -->
|
||||
<footer class="footer">
|
||||
<div class="row align-items-center justify-content-xl-between">
|
||||
<div class="col-xl-6">
|
||||
<div class="text-center text-xl-left ">
|
||||
<a href="https://github.com/psmattas/covid19-dashboard" class="font-weight-bold ml-1 text-muted"
|
||||
target="_blank">covid19-dashboard</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-6">
|
||||
<div class="text-center text-xl-right ">
|
||||
<a href="https://psmforums.wordpress.com" class="font-weight-bold ml-1 text-muted" target="_blank">@psmforums
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
97
core/templates/includes/header.html
Normal file
97
core/templates/includes/header.html
Normal file
@@ -0,0 +1,97 @@
|
||||
{% load humanize %}
|
||||
{% load trend %}
|
||||
|
||||
<!-- Header -->
|
||||
<div class="header pb-8 pt-5 pt-md-6 bg-secondary">
|
||||
<div class="container-fluid">
|
||||
<div class="header-body">
|
||||
<!-- Card stats -->
|
||||
<div class="row">
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card shadow card-stats mb-4 mb-xl-0 fade-in-top">
|
||||
<div class="card-body ">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="card-title text-uppercase text-muted mb-0">Confirmed</h5>
|
||||
<span id="daily_confirmed_label" class="h2 font-weight-bold mb-0">0</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="icon icon-shape bg-primary text-white rounded-circle shadow">
|
||||
<i class="fas fa-virus"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-3 mb-0 text-muted text-sm">
|
||||
<span id="trend_confirmed_label" class="mr-2">+0%</span>
|
||||
<span class="text-nowrap">Since last week</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card shadow card-stats mb-4 mb-xl-0 fade-in-top">
|
||||
<div class="card-body ">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="card-title text-uppercase text-muted mb-0">Recovered</h5>
|
||||
<span id="daily_recovered_label" class="h2 font-weight-bold mb-0">0</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="icon icon-shape bg-green text-white rounded-circle shadow">
|
||||
<i class="fas fa-heartbeat"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-3 mb-0 text-muted text-sm">
|
||||
<span id="trend_recovered_label" class="mr-2">+0%</span>
|
||||
<span class="text-nowrap">Since last week</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card shadow card-stats mb-4 mb-xl-0 fade-in-top">
|
||||
<div class="card-body ">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="card-title text-uppercase text-muted mb-0">Deaths</h5>
|
||||
<span id="daily_deaths_label" class="h2 font-weight-bold mb-0">0</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="icon icon-shape bg-danger text-white rounded-circle shadow">
|
||||
<i class="fa fa-skull-crossbones"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-3 mb-0 text-muted text-sm">
|
||||
<span id="trend_deaths_label" class="mr-2">+0%</span>
|
||||
<span class="text-nowrap">Since last week</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card shadow card-stats mb-4 mb-xl-0 fade-in-top">
|
||||
<div class="card-body ">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="card-title text-uppercase text-muted mb-0">Death Rate</h5>
|
||||
<span id="daily_death_rate_label" class="h2 font-weight-bold mb-0">0</span>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="icon icon-shape bg-warning text-white rounded-circle shadow">
|
||||
<i class="fa fa-percent"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-3 mb-0 text-muted text-sm">
|
||||
<span id="trend_death_rate_label" class="mr-2">+0</span>
|
||||
<span class="text-nowrap">Since last week</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
6
core/templates/includes/scripts.html
Normal file
6
core/templates/includes/scripts.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!-- Core -->
|
||||
<script src="/static/assets/js/plugins/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/static/assets/js/plugins/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<!-- Argon JS -->
|
||||
<script src="/static/assets/js/argon-dashboard.min.js?v=1.1.0"></script>
|
||||
80
core/templates/includes/sidenav.html
Normal file
80
core/templates/includes/sidenav.html
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
<nav class="navbar navbar-vertical fixed-left navbar-expand-md navbar-dark bg-dark" id="sidenav-main">
|
||||
<div class="container-fluid">
|
||||
<!-- Toggler -->
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<!-- Brand -->
|
||||
<a class="navbar-brand pt-0" href="/">
|
||||
<img src="/static\assets/img/brand/blue.png" class="navbar-brand-img" alt="https://psmforums.wordpress.com">
|
||||
</a>
|
||||
<!-- User -->
|
||||
<ul class="nav align-items-center d-md-none">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link nav-link-icon" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right" aria-labelledby="navbar-default_dropdown_1">
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<!-- Collapse -->
|
||||
<div class="collapse navbar-collapse" id="sidenav-collapse-main">
|
||||
<!-- Collapse header -->
|
||||
<div class="navbar-collapse-header d-md-none">
|
||||
<div class="row">
|
||||
<div class="col-6 collapse-brand">
|
||||
<a href="./">
|
||||
<img src="/static\assets/img/brand/white.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-6 collapse-close">
|
||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle sidenav">
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Navigation -->
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item home-item">
|
||||
<a class=" nav-link active text-light fade-in-left " href="/"><i class="fas fa-home text-primary "></i>Home
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item maps-item">
|
||||
<a class="nav-link text-light fade-in-left " href="/maps.html">
|
||||
<i class="fas fa-map-marked-alt text-warning"></i>Maps
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Divider -->
|
||||
<hr class="my-3">
|
||||
<!-- Heading -->
|
||||
<!-- Navigation -->
|
||||
<ul class="navbar-nav mb-md-3 ">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-muted fade-in-left" href="https://github.com/psmattas/covid19-dashboard" target="_blank">
|
||||
<i class="fab fa-github " style="font-size:1.1rem;"></i>Code
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item data-item">
|
||||
<a class="nav-link text-muted fade-in-left" href="/data.html">
|
||||
<i class="fas fa-database"></i>Data
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
129
core/templates/index.html
Normal file
129
core/templates/index.html
Normal file
@@ -0,0 +1,129 @@
|
||||
{% extends 'layouts/base.html' %}
|
||||
{% load humanize %}
|
||||
|
||||
|
||||
{% block title %} Home {% endblock title %}
|
||||
|
||||
<!-- Specific CSS goes HERE -->
|
||||
{% block stylesheets %}{% endblock stylesheets %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include "includes/header.html" %}
|
||||
|
||||
<div class="container-fluid mt--7 bg-secondary">
|
||||
<div class="row">
|
||||
<div class="col-xl-8 mb-5 mb-xl-0"> <!-- Global interactive Plotly Mabpox -->
|
||||
<div class="card shadow fade-in-bottom">
|
||||
<div class="card-body plotly worldmap">
|
||||
<div id="world_map" class="chart" style="height: 100%;"></div>
|
||||
</div>
|
||||
<div style="position: absolute; padding:1.25rem 1.5rem;">
|
||||
<h6 class="text-uppercase text-muted ls-1 mb-1">Global | Cumulative</h6>
|
||||
<h2 class="text-dark mb-0">Mapbox</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-4"> <!-- Growth interactive scatterplot -->
|
||||
<div class="card bg-dark shadow fade-in-bottom">
|
||||
<div class="card-header bg-transparent">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="text-uppercase text-light ls-1 mb-1">Global | Cumulative</h6>
|
||||
<h2 class="text-white mb-0">Growth</h2>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<a class="btn btn-sm btn-light" tabindex="0" role="button" data-toggle="popover" data-trigger="focus" title="Info"
|
||||
data-content="Global cumulative growth in cases since collection of data started. Defaulted to logarithmic y-scale">
|
||||
<i class="fas fa-info text-dark"> </i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body plotly">
|
||||
<div id="realtime_growth_chart" class="chart" style="height: 310px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-5">
|
||||
<div class="col-xl-8 mb-5 mb-xl-0"> <!-- Global daily growth plot -->
|
||||
<div class="card shadow">
|
||||
<div class="card-header bg-transparent">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="text-uppercase text-muted ls-1 mb-1">Global | Daily</h6>
|
||||
<h2 class="mb-0">Daily Growth</h2>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<a class="btn btn-sm btn-white" tabindex="0" role="button" data-toggle="popover" data-trigger="focus" title="Info"
|
||||
data-content="Daily time series of cases. Bars can be stacked for relative adjacent comparison by toggling 'confirmed' cases.">
|
||||
<i class="fas fa-info"> </i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body plotly">
|
||||
<div id="daily_growth_chart" class="chart"style="height: 310px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-4">
|
||||
<div class="card shadow">
|
||||
<div class="card-header bg-transparent">
|
||||
<div class="row align-items-center">
|
||||
<div class="col">
|
||||
<h6 class="text-uppercase text-muted ls-1 mb-1">Global | Sortable</h6>
|
||||
<h2 class="mb-0">Cases</h2>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<a href="#!" class="btn btn-sm btn-white">
|
||||
<i class="fas fa-download"> </i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<!-- cases table -->
|
||||
<table id="cases_table" class="table align-items-center table-flush">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th scope="col">Country</th>
|
||||
<th scope="col">Confirmed</th>
|
||||
<th scope="col">Recovered</th>
|
||||
<th scope="col">Deaths</th>
|
||||
<th scope="col">Death Rate %</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="cases_table_body"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "includes/footer.html" %}
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
<!-- Specific JS goes HERE -->
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$('.nav-item a').removeClass('active');
|
||||
$('.home-item a').addClass('active');
|
||||
</script>
|
||||
|
||||
<!-- Sortable Tables -->
|
||||
<script defer src="/static/assets/js/sorttable.js"></script>
|
||||
|
||||
<!-- Plotly.js CDN -->
|
||||
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/plotly.js/1.54.6/plotly.min.js"></script>
|
||||
|
||||
<!-- Load and display data -->
|
||||
<script defer src="/static/assets/js/fetch-data.js"></script>
|
||||
{% endblock javascripts %}
|
||||
53
core/templates/layouts/base.html
Normal file
53
core/templates/layouts/base.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!-- Static assets - Used to load the Favicon -->
|
||||
{% load static %}
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<title>
|
||||
COVID-19 Dashboard | {% block title %} Open-Source analytics dashboard {% endblock %}
|
||||
</title>
|
||||
|
||||
<!-- Favicon - loaded as static -->
|
||||
<link rel="icon" href="{% static 'assets/img/brand/favicon.ico' %}" type="image/png" media="print" onload="this.media='all'"/>
|
||||
<noscript><link rel="icon" href="{% static 'assets/img/brand/favicon.ico' %}" type="image/png"/></noscript>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap" media="print" onload="this.media='all'"/>
|
||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap"/></noscript>
|
||||
|
||||
<!-- Icons -->
|
||||
<script defer src="https://kit.fontawesome.com/189832a678.js" crossorigin="anonymous"></script>
|
||||
|
||||
<link rel="stylesheet" href="/static/assets/css/style.css?v=1.1.0" media="print" onload="this.media='all'"/>
|
||||
<noscript><link rel="stylesheet" href="/static/assets/css/style.css?v=1.1.0"/></noscript>
|
||||
|
||||
<!-- Specific CSS goes HERE -->
|
||||
{% block stylesheets %}
|
||||
|
||||
{% endblock stylesheets %}
|
||||
|
||||
</head>
|
||||
|
||||
<body class="">
|
||||
|
||||
{% include "includes/sidenav.html" %}
|
||||
|
||||
<div class="main-content">
|
||||
|
||||
{% block content %}{% endblock content %}
|
||||
|
||||
</div>
|
||||
|
||||
{% include "includes/scripts.html" %}
|
||||
|
||||
<!-- Specific JS goes HERE -->
|
||||
{% block javascripts %}{% endblock javascripts %}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
27
core/templates/pages/data.html
Normal file
27
core/templates/pages/data.html
Normal file
@@ -0,0 +1,27 @@
|
||||
{% extends 'layouts/base.html' %}
|
||||
|
||||
{% block title %} Data {% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="container-fluid pt-6 bg-secondary">
|
||||
<h2>Data</h2>
|
||||
<p>Data sources used throughout the project.</p>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item"><a href="https://github.com/CSSEGISandData/COVID-19">Johns Hopkins</a></li>
|
||||
<li class="list-group-item"><a href="https://github.com/owid/covid-19-data/tree/master/public/data">Our World In Data</a></li>
|
||||
<li class="list-group-item"><a href="https://github.com/nytimes/covid-19-data">New York Times</a></li>
|
||||
</ul>
|
||||
|
||||
{% include "includes/footer.html" %}
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
<!-- Specific JS goes HERE -->
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$('.nav-item a').removeClass('active');
|
||||
$('.data-item a').addClass('active');
|
||||
</script>
|
||||
{% endblock javascripts %}
|
||||
33
core/templates/pages/error-404.html
Normal file
33
core/templates/pages/error-404.html
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
{% block title %} Error 404 {% endblock title %}
|
||||
|
||||
<!-- Specific CSS goes HERE -->
|
||||
{% block stylesheets %}{% endblock stylesheets %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Page content -->
|
||||
<div class="container mt--8 pb-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-5 col-md-7">
|
||||
<div class="card bg-secondary shadow border-0">
|
||||
<div class="card-header bg-transparent pb-5">
|
||||
|
||||
<div class="text-muted bg-transparent text-center mt-2 mb-3">
|
||||
<h2> Oops! Error 404</h2>
|
||||
</div>
|
||||
|
||||
<div class="text-center mb-4">
|
||||
Page not found
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
<!-- Specific JS goes HERE -->
|
||||
{% block javascripts %}{% endblock javascripts %}
|
||||
39
core/templates/pages/maps.html
Normal file
39
core/templates/pages/maps.html
Normal file
@@ -0,0 +1,39 @@
|
||||
{% extends 'layouts/base.html' %}
|
||||
|
||||
{% block title %} Maps {% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid pt-6 bg-secondary">
|
||||
<h2>Maps</h2>
|
||||
<p>Country level maps. More coming soon!</p>
|
||||
<div class="row">
|
||||
<div class="col-xl-12 mb-5 mb-xl-0"> <!-- Global interactive Plotly Mabpox -->
|
||||
<div class="card shadow fade-in-bottom">
|
||||
<div class="card-body plotly worldmap">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/plotly.js/1.54.6/plotly.min.js"></script>
|
||||
|
||||
<div class="chart">
|
||||
{% autoescape off %}
|
||||
{{ usa_map }}
|
||||
{% endautoescape %}
|
||||
</div>
|
||||
</div>
|
||||
<div style="position: absolute; padding:1.25rem 1.5rem;">
|
||||
<h6 class="text-uppercase text-muted ls-1 mb-1">USA Counties | Per Capita</h6>
|
||||
<h2 class="text-dark mb-0">Per 100k Residents</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "includes/footer.html" %}
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
<!-- Specific JS goes HERE -->
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$('.nav-item a').removeClass('active');
|
||||
$('.maps-item a').addClass('active');
|
||||
</script>
|
||||
{% endblock javascripts %}
|
||||
Reference in New Issue
Block a user