Passa al contenuto principale

dashboards


PPM Dashboards

PPM Dashboards give every stakeholder a configurable view of the data that matters to them. PMO leads can build organization-wide executive summaries, project managers can assemble project-specific health monitors, and team members can maintain personal dashboards with the widgets most relevant to their daily work — all within the same dashboard infrastructure.

Overview​

A dashboard is a named grid canvas containing one or more widgets. Each widget occupies a position on a 12-column grid and displays a specific data visualization, from simple KPI cards and budget bars to full EVM S-curves and resource heatmaps. Dashboards are scoped to a level — personal, team, organization, portfolio, project, or program — so the same infrastructure serves every layer of the PPM hierarchy.

The dashboard list page at /{workspaceSlug}/portfolio/dashboards is the management hub for creating, duplicating, setting defaults, and deleting dashboards. Individual dashboards open in the dashboard builder, where widgets can be added, resized, and repositioned by dragging.

Getting Started​

  1. Navigate to Portfolio > Dashboards in the sidebar.
  2. Click New Dashboard to open the creation dialog.
  3. Choose a name, optional description, and scope.
  4. For entity-scoped dashboards (portfolio, project, or program), select the target entity.
  5. Click Create. The empty dashboard canvas opens.
  6. Click Add Widget and choose a widget type to populate the canvas.
  7. Drag widgets to rearrange them. Resize by dragging the bottom-right corner.
  8. Toggle Set as Default to make this dashboard the landing view for its scope.

Key Concepts​

Dashboard Scopes​

Every dashboard belongs to exactly one scope. Scopes determine who sees the dashboard and what data context it operates in:

ScopeDescription
personalVisible only to the creator
teamShared across a workspace team
organizationShared across the full organization
portfolioAttached to a specific portfolio
projectAttached to a specific project
programAttached to a specific program

Entity-scoped dashboards (portfolio, project, program) require a scopeEntityId that identifies which portfolio, project, or program the dashboard belongs to.

Default Dashboard​

Each (scope, entity) combination can have at most one default dashboard. Marking a dashboard as default automatically unmarks the previous default for the same scope and entity. Default dashboards are presented as the first view when a user navigates to a portfolio, project, or program — reducing the number of clicks needed to reach key information.

Widget Types​

ProBeya supports 13 widget types, each with preset default and minimum grid dimensions:

Widget TypeLabelDefault Size (w × h)
kpi_cardKPI Card3 × 2
chartChart6 × 4
tableData Table6 × 4
metricSingle Metric2 × 2
milestone_timelineMilestone Timeline12 × 3
gantt_miniMini Gantt8 × 4
resource_heatmapResource Heatmap6 × 4
pipeline_funnelPipeline Funnel4 × 4
bubble_chartBubble Chart6 × 5
evm_s_curveEVM S-Curve8 × 4
budget_barBudget Bar6 × 3
risk_heatmapRisk Heatmap5 × 5
custom_queryCustom Query6 × 4

How It Works​

Grid Layout​

Widget positions are stored as JSONB objects with x, y, w, and h integer fields matching the react-grid-layout coordinate system. The grid uses a 12-column layout. When the user finishes dragging widgets, a single batchUpdateWidgetPositions call persists all position changes at once, avoiding one round-trip per widget.

Duplicate​

The duplicate procedure deep-clones a dashboard: it creates a new dashboard record with a (Copy) name suffix and inserts fresh copies of every widget with new IDs. The clone is never marked as default, preventing it from displacing the original default dashboard.

Widget Data Resolution​

Fetching a dashboard via getById returns the dashboard metadata and widget configurations without resolving live data. Widget data is resolved separately via getWidgetData, which accepts a widget ID and returns the current metric or visualization data for that widget type. This separation keeps the dashboard load fast — layout is rendered immediately and data loads per-widget.

Batch Position Updates​

After a drag-drop rearrangement, the UI sends a single batchUpdateWidgetPositions call containing an array of { widgetId, position } objects. The server verifies each widget belongs to the same dashboard before updating, preventing cross-dashboard position tampering.

Configuration​

SettingLocationDescription
Dashboard nameDashboard > EditDisplay name for the dashboard
ScopeDashboard > EditDetermines visibility and data context
Scope entityDashboard > EditRequired for portfolio/project/program scopes
Default flagDashboard > Set DefaultMakes this the landing dashboard for its scope
Widget typeWidget > Add WidgetDetermines which data visualization renders
Widget configurationWidget > EditType-specific settings (metrics, filters, chart type)
Widget positionDrag & drop on canvasx, y, width, height on the 12-column grid

Permissions​

  • View dashboards: all organization members with PPM access can view dashboards in their scope.
  • Create dashboard: all authenticated users can create personal dashboards; team/org/entity dashboards require the corresponding manager or admin role.
  • Edit dashboard: dashboard creator or PPM admin.
  • Delete dashboard: dashboard creator or PPM admin. Deletion cascades to all widgets.
  • Set as default: dashboard creator or PPM admin.
  • Duplicate dashboard: any user with view access to the source dashboard.

Tips & Best Practices​

  • Start with a template dashboard: duplicate an existing well-configured dashboard as a starting point rather than building from scratch each time.
  • Use scope intentionally: a portfolio-scoped dashboard automatically filters its widgets to data from that portfolio. An organization-scoped dashboard shows data across the full organization.
  • Pin the EVM S-Curve for active projects: the evm_s_curve widget is the most information-dense single widget for monitoring project health. Place it in the top-left of project-scoped dashboards.
  • Keep personal dashboards focused: personal dashboards work best when limited to 4-6 widgets covering your direct responsibilities. Organization-level dashboards can be broader.
  • Set one default per scope: the default dashboard is what stakeholders see when they open a portfolio or project. Choose the most broadly useful dashboard for each scope rather than a personal view.
Duplicate before experimenting

Before making significant changes to a shared dashboard, duplicate it and experiment on the copy. This prevents disrupting other users who rely on the original layout.

Deleting a dashboard removes all its widgets

Dashboard deletion cascades to all widgets via the database foreign key. There is no soft-delete for dashboards — exports or screenshots before deletion are recommended for record-keeping.