Dashboard
Dashboard
The Dashboard is the page you land on right after signing in to the Portal at /portal/dashboard. It is a single-screen, today-only overview of how the business is doing: how many fiscal devices you have, how many are online right now, how many receipts you've issued so far today and how much revenue they add up to. Its job is to answer "is everything healthy and is the till ringing?" in one glance — anything deeper lives on the dedicated Receipts, Devices or Reports pages.
Everything on the Dashboard is scoped to the active organization you picked from the org switcher. For users whose role is not Owner or Admin (managers tied to a single shop), the data is also automatically restricted to their assigned location, so a shift manager only ever sees their own till.
The four KPI cards
The top row of the Dashboard shows four headline numbers, in this order:
- Devices (
dashboard.page.totalDevices) — total number of fiscal devices registered in the active organization. - Receipts Today (
dashboard.page.receiptsToday) — how many receipts have been issued today (server time). - Revenue Today (
dashboard.page.revenueToday) — sum of those receipts' totals, formatted in RON. - Online Devices (
dashboard.page.onlineDevices) — how many of your devices are currentlyOnline(controller connected and AMEF reachable).
The Dashboard pulls today's receipts with a hard cap of 100 rows per request (RECEIPTS_LIMIT = 100). When more than 100 receipts have been issued today, the Receipts Today card displays 100+ and Revenue Today is the sum of those first 100 receipts only.
100+ and the matching revenue figure are intentional. The Dashboard is meant to stay snappy on the hot path — it is not a reporting tool. If you need the exact totals across the day, week or month, open Reports (the Z report and the daily summaries are the source of truth) or filter the Receipts page by date.The zero state
When your organization has no devices registered yet and no receipts for today, the Dashboard switches to its zero state:
- All four KPI cards render an em-dash (
—) instead of a number, with a tooltip "Add your first device to see data." - The Get started with E-BON onboarding card appears at the top of the page with the four steps to bring your first fiscal device online.
Follow these steps once and the zero state goes away on its own as soon as the controller app claims the device:
Download the E-BON app
Install the E-BON app from Google Play Store on your Android device.
Log in to the app
Use the same email and password you registered with on this portal.
Connect a fiscal printer
In the app, go to Settings > Add Printer and connect via Bluetooth, USB or TCP.
Verify the device in the portal
Once connected, the device will automatically appear on the Devices page.
Realtime updates and the 30-second fallback
The Dashboard subscribes to the same realtime event stream the rest of the Portal uses (useRealtimeEvents). When the WebSocket is connected, the four KPIs and the three side panels update live as events arrive — receipt.created prepends a row to Recent Activity and increments Receipts Today / Revenue Today, device.status updates the matching device's badge and last-seen, app.connected and app.disconnected add or remove rows from the App Instances panel.
If the WebSocket is not connected (browser tab woke from sleep, network blip, proxy issue), the Dashboard automatically falls back to polling: it re-fetches devices, today's receipts, app instances and device statuses every 30 seconds (FALLBACK_POLL_INTERVAL_MS = 30_000). The polling stops the moment the WebSocket reconnects, so the page never double-loads. See the architecture overview for the full picture of how Portal, App and API communicate.
Recent Activity panel
The first of the three lower panels lists the last 5 receipts of the day, newest first. Each row shows the device name, the time the receipt was issued, the first 8 characters of the receipt id and the total in RON.
When today has no receipts yet, the panel shows an empty-state hint "Receipts issued today will appear here." and a View receipts button that takes you to the full Receipts page, where you can browse history and filter by date, device or location.
Device Status panel
The middle panel is a compact list of every fiscal device in the active organization with its name, a last-seen relative timestamp and the current status badge. The relative timestamp uses one of these strings, verbatim from i18n:
- Just now — within the last minute.
- Xm ago — minutes.
- Xh ago — hours.
- Xd ago — days.
- Never — the device has never reported in.
- Unknown — last-seen data is missing.
A tiny pulsing dot in front of the status badge indicates that the controller's WebSocket is currently connected to the cloud (independent of the AMEF status itself).
When the organization has no devices yet, the panel shows the "No devices registered." hint and an Add device button that takes you to the Devices page.
App Instances panel
The third panel lists every E-BON Android app instance currently connected to the cloud for this organization. For each instance you see:
- deviceName — the friendly name reported by the controller phone or tablet.
- appVersion — the E-BON app version it is running.
- deviceModel and osVersion — the controller hardware and Android version.
- connectedAt — when the WebSocket session opened, rendered as Connected for {time}.
- connectedDevices — which fiscal printers this instance currently controls.
Each row carries a green Online badge while the WebSocket session is live; the row disappears as soon as the controller signs out or the socket closes.
When no controller is connected, the panel shows "No E-BON app instances connected." with a Setup button. New to E-BON? Start with the Installing the app guide.
- No date-range picker. The Dashboard is fixed to today. Yesterday's numbers are not on this page.
- No comparison or trend charts. There is no week-over-week sparkline, no month-to-date bar, no growth percentage.
- No export button. You cannot download today's receipts or KPIs as CSV from the Dashboard.
- No per-location filter. Owners and Admins see all locations of the active organization aggregated together; managers see only their assigned location automatically and cannot switch.
- No VAT-rate breakdown widget. Revenue Today is one number — it is not split by VAT class.
Where to next
- Manage the fiscal hardware that feeds these numbers — the Devices guide.
- Drill into individual sales — the Receipts page.
- Get the official daily totals and Z reports — the Reports page.
- Organize devices across shops — the Locations guide.
- Wire integrations to the live event stream the Dashboard uses — the API keys guide.
- Bring your first device online end-to-end — the Integration walkthrough.