Community Dashboard

Dashboard for communities: what's up, who's here and what are they working on. Designed for use here at the Open Knowledge Foundation.


 * Code Repository: https://github.com/okfn/dashboard (includes issues)
 * Etherpad: http://coord.okfnpad.org/dashboard
 * Demo: http://okfnlabs.org/dashboard/app/

The OKFN Community Dashboard provides an overview of community activity. For example:


 * Location of community members
 * Recent activity by members
 * Activity around specific projects or topic areas

What's the problem: the OKF has a flourishing and diverse set of activities and it can be hard, even for people 'inside' to see what is going on. The Dashboard should help us see quickly what is going on.

= Useful Links =


 * Code Repository: https://github.com/okfn/dashboard
 * Issue tracker: https://github.com/okfn/dashboard/issues
 * Etherpad: http://coord.okfnpad.org/dashboard
 * Online Workingspaces - http://wiki.okfn.org/Online_Workspaces
 * HackDay: http://wiki.okfn.org/Community_Dashboard_Hackday_Nov_2011

= Views =


 * User "dashboard" - overview including user map
 * User mini-view
 * User full view (that user and their activity)
 * Topic "dashboard" - overview (all topics)
 * Topic = project or a working group or just some area of activity
 * Per topic view
 * Overall dashboard (?)

User Dashboard

 * User map
 * User infobox (when you select a user)
 * Activity stream for that user (or for whole org if no user selected)
 * Second stage: filtering the activity stream (query)

Mockup
https://docs.google.com/drawings/pub?id=1CZEaRUQ9nLkUBCN9NgviiZueu5N9ijGuIaEYLgTtrwE&w=960&h=720&.png

Topic Dashboard
Like google analytics

https://docs.google.com/drawings/pub?id=1y2e7OSw5pkg-CmIW7nmVD65Im5__tnhfp45312SkZvo&w=960&h=720&.png

= Domain Model =


 * Person
 * Activity
 * Topic (aka Project/Working group e.g. CKAN, Science Working Group

Primary concept is Activity. Activity associated to a Person and a Topic.

Some extra items for convenience:


 * Sources - list of sources to poll for activity information (may run off google docs)
 * Stored in Google doc source list
 * IdentityMap - map identities in different services to single Person (reconciliation service)
 * Again runs off google docs: OKFN People Reconciliation List
 * Stats - cached stats
 * StateInfo - very basic key / value table for storing stuff like scrape state (did this fail last time or not ...)

Person
{   __id__ username: (from member page if possible) fullname: ... is_member: 0,1, description: geolocation: { unparsed: ...       geojson: ... },   member_since: }

Topic
Pulled from project google doc?

A little bit different from pure projects as we would count working groups as 'projects.

See google doc for authoratative field listing

{   id: ...    title: ... icon: # image / icon for the project project_type: app | working_group | core # core in OKFN core ...   ... }

Activity
{ "person_id": FK ... # could be null "author": "", # author name from e.g. RSS feed "title": "", "description": "", "datetime": "" "channel": mail | wiki | website | code | ticket | ... "source_id": # source id "source_url" # specific url from which this activity came (if any) "project_id": # project or working group or ... "tags": # space separated list (?) }

Source
Stored in Source google doc.

See gdoc for authoratative field listing

{  id: ... url: feed_url: channel: # like on activity type: github | bitbucket | mailman | wordpress | ... status: # ok / error description: ...  project_id: ... }

Source / Service Config
Need passwords / logins / api keys for services (e.g github, bitbucket ...)

= Tools =

Storage
We are using the webstore - http://wiki.ckan.net/Webstore

http://webstore.thedatahub.org/okfn/dashboard

Frontend

 * Core: jquery + backbone + jquery.tmpl as basic javascript stack ...
 * Visualization:
 * Geo: openlayers or mapquery (jquery + openlayers)
 * flot: for graphs
 * feeds - ideas, commits etc.
 * http://plugins.jquery.com/project/NannuFeed ?

= Planning Meetings =

2011-08-04
Present: RP + MN

Actions

 * MN: mockup the topic dashboard
 * MN: start work on the user dashboard with RP
 * RP: will upload person info for members ...
 * RP: will put up backbone material
 * MN: how to get geojson from a location e.g. using geopy (mail on okfn-help)