feat: display the number of page views

This commit is contained in:
tdurieux
2022-10-19 16:34:03 +02:00
parent 15777c4a70
commit 0506e97990
2 changed files with 31 additions and 15 deletions
+21 -12
View File
@@ -134,18 +134,7 @@
<h2 id="about">Metrics</h2> <h2 id="about">Metrics</h2>
<div class="row pb-5"> <div class="row pb-5">
<!--Grid column--> <!--Grid column-->
<div class="col-md-6"> <div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">
{{stat.nbRepositories|number}} Anonymized Repositories
</h3>
</div>
</div>
</div>
<div class="col-md-6">
<div <div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative" class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
> >
@@ -154,6 +143,26 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">
{{stat.nbRepositories|number}} Repositories
</h3>
</div>
</div>
</div>
<div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">{{stat.nbPageViews|number}} Page views</h3>
</div>
</div>
</div>
<!--Grid column--> <!--Grid column-->
</div> </div>
<!--Grid row--> <!--Grid row-->
+10 -3
View File
@@ -41,7 +41,7 @@ export default async function start() {
app.set("trust proxy", true); app.set("trust proxy", true);
app.set("etag", "strong"); app.set("etag", "strong");
app.get('/ip', (request, response) => response.send(request.ip)) app.get("/ip", (request, response) => response.send(request.ip));
// handle session and connection // handle session and connection
app.use(connection.appSession); app.use(connection.appSession);
@@ -80,7 +80,7 @@ export default async function start() {
app.use("/github", rate, speedLimiter, connection.router); app.use("/github", rate, speedLimiter, connection.router);
// api routes // api routes
const apiRouter = express.Router() const apiRouter = express.Router();
app.use("/api", rate, apiRouter); app.use("/api", rate, apiRouter);
apiRouter.use("/admin", router.admin); apiRouter.use("/admin", router.admin);
@@ -103,7 +103,14 @@ export default async function start() {
await AnonymizedRepositoryModel.estimatedDocumentCount(); await AnonymizedRepositoryModel.estimatedDocumentCount();
const nbUsers = (await AnonymizedRepositoryModel.distinct("owner")).length; const nbUsers = (await AnonymizedRepositoryModel.distinct("owner")).length;
res.json({ nbRepositories, nbUsers }); const nbPageViews = await AnonymizedRepositoryModel.collection
.aggregate([
{
$group: { _id: null, total: { $sum: "$pageView" } },
},
])
.toArray();
res.json({ nbRepositories, nbUsers, nbPageViews: nbPageViews[0].total });
}); });
// web view // web view