Main Dashboard Page
The main Dashboard page at /dashboard is the first screen you see after logging in. It combines role-specific statistics, a customisable widget grid, quick actions, and real-time status indicators into a single operational view.
Role-based stats section
At the top of the page, the stats section displays primary and secondary metrics calculated by the DashboardStatsService. The stats shown depend on your role:
All roles
- Total Equipment — Count of all equipment items in your inventory (total_equipment)
- Available Equipment — Items with status available (available_equipment)
- Active Projects — Projects with status confirmed, in_progress, or active (active_projects)
- Total Clients — Count of all client records (total_clients)
CoreAdmin and CoreManager (Executive view)
In addition to the base stats, executives see:
- Pending Invoices — Invoices with status sent or overdue (pending_invoices)
- Revenue This Month — Sum of paid invoice totals for the current month (revenue_this_month)
- Equipment Utilisation — Percentage of equipment currently on rent (equipment_utilization)
- Quote Conversion Rate — Accepted quotes divided by total quotes this month (quote_conversion_rate)
- Trend indicators — Direction arrows (up/down) with percentage change compared to the previous month for equipment, projects, and revenue
Warehouse Staff
- Pending Check-Ins — Packing lists awaiting check-in (pending_checkins)
- Low Stock Alerts — Items where quantity_available is at or below the reorder_point
- Upcoming Returns — Active projects with return dates within the next seven days (upcoming_returns)
- Packing Lists Due Today — Lists with today’s date that are pending or in progress (packing_lists_due_today)
Crew and Freelancers
- Hours This Month — Total hours from time clock entries for the current month (my_hours_this_month)
- Assignments Today — Crew assignments starting today (my_assignments_today)
- Assignments This Week — Assignments within the current week (my_assignments_this_week)
- Earnings This Month — Calculated from pay rates and logged hours (my_earnings_this_month)
Widget grid
Below the stats section, the widget grid renders your dashboard layout. It uses the useDashboardGrid composable to manage the 12-column GridStack layout with configurable row height (default 80px) and margins of 10 pixels. Widgets can be any of the 50+ types available in the widget library.
View mode and edit mode
The dashboard operates in two modes:
- View mode (default) — Widgets display live data. You can interact with widget content (hover for tooltips, click through to detail pages) but cannot move or resize widgets.
- Edit mode — Activated by clicking the edit toggle button. In this mode, widgets become draggable and resizable. A dotted grid overlay appears to guide placement. Changes to position and size persist immediately.
Dashboard switcher
If you have multiple dashboards, a dropdown selector in the top toolbar lets you switch between them. Your default dashboard is marked with a star icon. Click the star on any other dashboard to set it as the new default — this is the dashboard that loads when you navigate to /dashboard.
Quick actions
Contextual action buttons appear based on your role. For example, CoreAdmins see quick links to create a new project, add equipment, or view overdue invoices. Warehouse staff see shortcuts to the scanner and pending check-ins.
Connection status indicator
A small status badge in the top-right corner of the dashboard shows your real-time connection state. The useDashboardRealTime composable manages this with five possible statuses:
- Live (green) — WebSocket connected, receiving real-time updates
- Connecting (amber) — Establishing WebSocket connection
- Polling Mode (blue) — WebSocket unavailable, polling every 30 seconds via /api/dashboard/poll-updates
- Disconnected (red) — No active connection, automatic reconnection in progress with exponential backoff
- Connection Error (red) — Maximum reconnection attempts (5) exhausted and polling fallback disabled
Auto-refresh
Widget data refreshes automatically at a configurable interval. The default is 300 seconds (5 minutes), matching the widget cache TTL. You can adjust this between 0 (disabled) and 3600 seconds (1 hour) in the dashboard settings. Each widget also has its own cache_ttl_seconds setting that controls how often its data is recalculated.
Onboarding banner
New users see a dismissible onboarding banner at the top of the dashboard. It highlights initial setup steps — adding equipment, creating your first project, inviting crew members, and configuring settings. Once dismissed, it does not reappear.
Addon upsell strip
If your subscription does not include the Analytics & AI addon, a subtle promotional strip appears below the widget grid. It showcases the four AI-powered widgets (predictive revenue, at-risk clients, equipment investment recommendations, anomaly alerts) and links to the subscription management page.
Responsive layout
The dashboard adapts to different screen sizes:
- Desktop — Full 12-column grid with drag-and-drop editing
- Tablet — Adapted layout with narrower columns, touch-friendly drag handles
- Mobile — Single-column layout, widgets stack vertically. Tap any widget to expand it to fullscreen view for detailed interaction.
Tips
- Use edit mode to rearrange widgets — drag them to the positions that match your workflow
- Set auto-refresh to a lower interval if you need near-real-time monitoring during busy event days
- Pin the dashboard as a browser tab for an always-on operations display
Next steps
Continue to the next article to learn about the Dashboard Builder, where you can create new dashboards from scratch or templates, add and configure widgets, and manage layout settings.
Was this article helpful?