client: standalone /stats page with charts, off the admin dashboard
Closes #40. New /stats route (client/stats.html + src/stats/), served by the same catch-all pattern as /admin. Reuses the admin login (STATS_PUBLIC env var on the server side decides whether it needs one at all). Three uPlot charts (daily revenue, daily transaction count, top-5-drink sold-qty trend) plus the same three tables Admin.tsx used to render inline — those move here wholesale, Admin.tsx now just links to /stats instead of fetching /admin/api/stats itself. The 'Statistik zurücksetzen' reset button moves here too, gated on an actual admin session (checked separately from whether /api/stats itself succeeded, since STATS_PUBLIC can make that true for an anonymous viewer). Chart lib is uPlot (~45kb) per mara's steer not to hand-roll this. Both client and server build/typecheck clean; manually smoke-tested the auth gate (401 unauthed, 200 after login) and the /stats route against a fresh DB.
This commit is contained in:
parent
9c75ce5243
commit
1d99881e88
10 changed files with 332 additions and 75 deletions
|
|
@ -105,6 +105,10 @@ if (existsSync(clientDist)) {
|
|||
reply.sendFile('admin.html');
|
||||
return;
|
||||
}
|
||||
if (req.url.startsWith('/stats')) {
|
||||
reply.sendFile('stats.html');
|
||||
return;
|
||||
}
|
||||
reply.sendFile('index.html');
|
||||
});
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue