The App
app/dashboard is the authenticated area, guarded client-side by
ProtectedRoute and server-validated by the backend's JwtAuthGuard. It is a
deliberately simple user-facing app for you to expand into your own product.
Operational statistics are not shown here: metrics, logs, and traces live in
Grafana (see Monitoring).
The app is composed of pages under app/dashboard/:
- Home (
page.tsx): a welcome header, the message-of-the-day banner, quick links, an account summary, and the user's recent sign-in activity (last login, known IPs, and devices) read from the JWT-protected/auth/me/activityendpoint. - Tasks (
tasks/page.tsx): a personal todo list, the worked example of calling a second backend service (see Calling Backend Services). Create, complete, and delete tasks; each request carries the auth cookie and the backend enforces ownership. - Account (
account/page.tsx): profile details and password change. - Admin (
admin/page.tsx, admins only): user management (list, filter, suspend, delete) and the message-of-the-day editor.
Shared chrome lives in app/dashboard/components/ (sidebar, topbar,
page-header, motd-banner, account-mini-card).
Next: Calling Backend Services.