Version 16 (modified by Dominic König, 7 years ago) ( diff )


BluePrint: Framework for Dashboards


Dashboards (in this BluePrint) are containers to render multiple data resources and/or user activities on a single page, allowing synopsis and cross-analysis of data resources, as well as consolidation of user goals.


  • Users
  • Deployers (Content Managers)
  • Service Providers (Template Developers)
  • Plugin Developers
  • Core Developers

User Stories


  • Deployers want to adapt the homepage to the context of the deployment and the current situation (global dashboard)
  • Deployers want to extend dashboards with additional/custom layouts or widgets provided as plugins
  • Organisation managers want to provide an overview of their current activities and status of their resources (org-specific dashboard)
  • Site managers want to provide an overview of the current status of their facilities and resources (site-specific dashboard)
  • Individual users want to adapt a personal landing page to their specific user role/tasks (personal dashboard)
  • Individual users want to share their dashboard configuration with other members of their team
  • Users want to re-use a dashboard configuration with multiple (e.g. offline) instances


  • Developers want to implement pages providing overview of status/tasks/resources in a certain workflow (workflow dashboard)
  • Developers want to implement pages for synopsis and cross-analysis of multiple data resources (analysis dashboard)
  • Developers want to provide additional layouts or widgets for dashboards as plugins

Core Developers

  • Developers want to extend or add page layouts for dashboards
  • Developers want to extend or add widget classes



  1. Dashboards support an extensible library of page layouts
  2. Dashboards support an extensible library of widgets (=objects to render resources/activities)
  3. Dashboards provide a structure for cross-filtering of widgets (=common context)
  4. Dashboards (including widgets) are configurable at run time (through the web GUI), without requiring any server-side intervention
  5. Dashboard configurations can be shared:
    • with other users
    • with other Sahana instances


  • easy to use (e.g. drag'n'drop to modify widget placement)
  • well-documented (both developers and users)
  • full coverage with automated (unit-)tests
  • fast and scalable
  • (should) support multiple widgets of the same type
  • (could) replace S3Profile



  • work consistently with all supported browsers, including normal browser actions (page reload, bookmarking)


  • maintain backwards-compatibility with existing user configurations
  • provide an option to export and import user configurations


  • maintain backwards-compatibility with 3rd-party widgets
  • provide an option to automatically synchronize configurations with other instances (e.g. offline instances)

WILL NOT (=things that are possible, but don't need framework level implementation)

  • make sure dashboards can be embedded into other pages
  • make sure dashboards work on mobile



System Constraints


Framework Architecture

Overview of the tentative framework architecture:

Current Implementation

Future Extensions

  • default configurations per entity (i.e. per organisation, site or team)
  • default configurations per user role (possibly combined with per-entity defaults)
  • ability for the user to add new dashboards as menu items

Outstanding Questions





Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.