User Guide

Dashboard

Personal home screen — action items, KPI tiles, activity feed. Customizable per user, role-aware server-side.

Every user lands on /dashboard after sign-in. Three vertical zones surface the same shape for every role, but the server fills them differently per role + module — vendor admins see different action items + KPIs than super_admins, and disabled-module surfaces are hidden automatically.

Dashboard for super_admin — action items + KPI tiles + activity feed.  Each card carries a left-edge accent stripe coloured by functional category (Time / Billing-AR / AP / Compliance / Contracts).
Dashboard for super_admin — action items + KPI tiles + activity feed. Each card carries a left-edge accent stripe coloured by functional category (Time / Billing-AR / AP / Compliance / Contracts).

Three zones

🔔

Zone 1 — Action items

Cards calling out things needing attention: PO awaiting acceptance, weeks pending review, docs expiring, contracts to sign, AR overdue. 15 kinds; each role sees a subset.
📊

Zone 2 — KPI tiles

At-a-glance metrics: team week hours, scope pending approval, AR outstanding, vendor invoices, active POs, cap utilization. Employee + vendor_member see a personal lens.
🕒

Zone 3 — Activity feed

30-day chronological stream merged from 13 source extractors. Time submitted, invoices sent, contracts countersigned — each row clickable through.

Customize mode

Click Customize in the top-right toolbar to toggle edit mode. Every card gains a hide × and a drag handle.

  • ✓Hide widgets you never want — click × to drop one
  • ✓Reorder within a zone — drag the handle
  • ✓Collapse zones — chevron toggle on each heading
  • ✓Show empty widgets — opt-in to see dormant cards

Preferences persist per user via users.dashboard_prefs JSON column. Reset link in the toolbar wipes overrides back to default.

Activity feed read/unread

Each feed event has a stable id. Click the row (or its Unread pill) to mark it read. Click the × to dismiss permanently. "Show dismissed (N)" toggle interleaves restored events back into the chronological feed with a rose-tinted row so you can undo any dismiss.

Tip
Customization is purely additive — server returns the full role-eligible catalog every load, even widgets that have no data right now. So a brand-new tenant sees the same dashboard shape as a mature one; widgets just light up as data arrives.

Role variation

👑

Super admin

All 15 action kinds + AR / AP / team KPIs. No scope limits.
👤

Manager

Scoped action items + KPIs for assigned clients only.
🏢

Vendor admin

Vendor-scoped: pending POs, cap utilization, vendor invoices, my team.
🧑

Employee / member / 1099

Personal lens: my week / my month / my last approved week + things I owe.
Customization persists per-user
Preferences live on users.dashboard_prefs JSON column. Each event carries a stable id — click Unread to toggle, × to dismiss. Reset link in the toolbar wipes overrides back to default.