diff options
author | Camil Staps | 2016-07-18 21:33:31 +0200 |
---|---|---|
committer | Camil Staps | 2016-07-18 21:33:31 +0200 |
commit | 246439a5c0670da535d4c458eae3fa766335fa3f (patch) | |
tree | b500c3882948b2a08af5ec6bd55552b6ef82b144 | |
parent | Cleaner logging (diff) |
Statistics page
-rw-r--r-- | app/Http/routes.php | 4 | ||||
-rw-r--r-- | resources/views/stats.php | 80 |
2 files changed, 84 insertions, 0 deletions
diff --git a/app/Http/routes.php b/app/Http/routes.php index 70e9164..67b661b 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -43,5 +43,9 @@ $app->group(['prefix' => parse_url(env('APP_URL'), PHP_URL_PATH)], function ($ap }); $app->get('/verb/random', 'App\Http\Controllers\RandomVerbController@show'); + + $app->get('/stats', function () use ($app) { + return view('stats'); + }); }); diff --git a/resources/views/stats.php b/resources/views/stats.php new file mode 100644 index 0000000..a37095a --- /dev/null +++ b/resources/views/stats.php @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<!-- +HebrewParseTrainer - practice Hebrew verbs +Copyright (C) 2015 Camil Staps <info@camilstaps.nl> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + --> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>HebrewParseTrainer statistics</title> + <link rel="stylesheet" href="vendor/twbs/bootstrap/dist/css/bootstrap.min.css"> + <link rel="stylesheet" href="vendor/twbs/bootstrap/dist/css/bootstrap-theme.min.css"> + <link rel="stylesheet" href="public/css/hebrewparsetrainer.css"> +</head> +<body role="application"> +<div class="container" role="main"> + <div class="page-header"> + <h1>HebrewParseTrainer statistics</h1> + </div> + + <div class="row"> + <div class="col-md-12"> + <div id="statistics" style="height:400px;"></div> + </div> + </div> +</div> + +<?php +use \HebrewParseTrainer\RandomLog; + +$db_stats = RandomLog + ::select(DB::raw('COUNT(*) as count'), 'created_at') + ->groupBy(DB::raw('DAY(created_at)')) + ->orderBy('created_at') + ->get(); + +$stats = []; +foreach ($db_stats as $stat) { + $stats[] = "[Date.UTC" . date("(Y,n-1,d)", strtotime($stat->created_at)) . "," . $stat->count . "]"; +} +$stats = "[" . implode(",", $stats) . "]"; +?> + +<script src="vendor/components/jquery/jquery.min.js"></script> +<script src="vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script> +<script src="//code.highcharts.com/highcharts.js"></script> +<script src="public/js/hebrewparsetrainer.js"></script> + +<script type="text/javascript"> + $('#statistics').highcharts({ + chart: { type: 'column', zoomType: 'x' }, + title: { text: 'Requests per day' }, + xAxis: { type: 'datetime' }, + yAxis: { + min: 0, + title: { text: 'Requests' } + }, + tooltip: { pointFormat: '<b>{point.y}</b> requests' }, + series: [ + { + name: 'Requests', + data: <?=$stats?> + } + ] + }); +</script> +</body> +</html> |