Usability - Productivity - Business - The web - Singapore & Twins

This article is part of a mini series. Read them all:

eMail Dashboard

email Dashboard for the rest of us - Part 1

One of the cool new features of IBM Verse is the Collaboration Dashboard. Unfortunately not all of us can switch to Verse overnight, so I asked myself: can I have a dashboard in the trusted old Notes 9.0 client?
Building a dashboard requires 3 areas to be covered:
  1. What data to show
  2. Where does the data come from
  3. How should the data be visualised, including actionable options (that's the place we preferences between users will differ strongly)
For a collaboration dashboard I see 3 types of data: collaborators (who), summary data (e.g. number of unread eMails) and detail data (e.g. the next meeting). Eventually there could be a 4th type: collections of summary data (e.g. number of emails by category). In a first iteration I would like to see:
  • Number of unread eMails
  • Number of meetings left today
  • Number of waiting for actions
  • Number of action items
  • List of top collaborators
  • List of todays upcoming meetings
  • List of top waiting for actions
  • List of top action items
I'm sure there will be more numbers and list coming up when thinking about it, but that's a story for another time.In Java land, such data layout usually gets represented by a Java Interface. So we need one for people, one for summary data, one for detail data and one returning specific summary and detail data. The whole set could look like this:

public interface DashboardProvider {
 /*Summary Data*/
 public DashboardMetric getActionCount();
 public DashboardMetric getMeetingCount();
 public DashboardMetric getUnreadCount();
 public DashboardMetric getWaitingForCount();

    /* Lists */
    public Collection<DashboardEntry> getActions();
    public Collection<DashboardMetric> getMetricCollection(String metricName);
    public Collection<Contributor> getCollaborators();
    public Collection<DashboardEntry> getUpcomingMeetings();
    public Collection<DashboardEntry> getWaitingFor();


public interface DashboardEntry {
public String getTitle();
public Contributor getContributor();
public String getDescription();
public Date getEntryDate();

public interface Contributor {
public String getName();
public String getImageData();
public String getURL();
public int getCollaborationCount();

public interface DashboardMetric {
public String getName();
public int getValue();
// Convenience method to combine the two
public String getAsLabel();

Note: All methods are names bean compatible - makes use of them in EL easier!
That part was easy. Next up: how to implement those interfaces to pull data from Domino. Stay tuned.

Posted by on 11 April 2015 | Comments (0) | categories: IBM Notes XPages


  1. No comments yet, be the first to comment