GithubHelp home page GithubHelp logo

okfn / dashboard Goto Github PK

View Code? Open in Web Editor NEW
26.0 25.0 8.0 4.29 MB

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

Home Page: http://wiki.okfn.org/Community_Dashboard

CoffeeScript 99.36% Shell 0.64%

dashboard's Introduction

A Community Dashboard for the Open Knowledge Foundation. See wiki for details of project: http://wiki.okfn.org/Community_Dashboard.

Developers

Deployment is via gh-pages but you need to have "built" the app using brunch first. To make changes and deploy you do:

  1. Edit stuff in master branch and commit
  2. Run brunch build this will create a public directory
  3. Switch to gh-pages
  4. Copy contents of new public folder to root directory
  5. Commit and deploy gh-pages branch

dashboard's People

Contributors

elemoine avatar napo avatar pmarkun avatar pudo avatar rufuspollock avatar teajaymars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dashboard's Issues

Latest Tweet, Latest Facebook post, Latest blog post

A small box for each of these would be useful to make sure that we're updating everything every day! No need to have detailed info or even pics, just last update and a brief bit of text pulled in.

C'est possible?

Backend storage infrastructure

Need somewhere to store data. Plan is to webstore. Need to:

  • Set up user and db (suggest okfn and dashboard)
  • Have some basic config and code for connecting using webstore client

Rework members map

  • Run off webstore person table
  • Can not have 1Mb openlayers file
  • Convert into backbone view and integrate into overall app

Rearchitect server cron jobs

At present, Wordpress front end runs a cron task, ~/cronjob_list_members.sh. This connects to the remote DB server, pulls the members list, and uses regexes to hack it into a CSV file which it places in a public directory.

Problems:

  • Piping SQL results through sed to create a CSV? Really?
  • We've discovered any file made public on the wp server (eg. http://okfn.org/dashboard/file.csv) will also appear on all sites in the multisite (eg http://openglam.net/dashboard/file.csv), making a mess.

Suggest the cron job runs on the server, using SELECT INTO OUTFILE to avoid the sed mess, and uploads it somewhere public. For example it could push it to a repo on GitHub.

The Dashboard gather script just needs a public up-to-date CSV file of members.

Decide on top priorities

This should be a (list) of user stories in order

Work Order

  • US4 - Basic stats and trends for projects/activities
    • US3 - activity stream per project
    • US5 - what projects are there
  • US2 - Pan-OKFN activity stream
  • US1 - Member directory and map - but not so sure ...

Priority Order

  • US4 - Basic stats and trends for projects/activities
  • US2 - Pan-OKFN activity stream
  • US3 - activity stream per project
  • US5 - activity stream per project
  • US1 - Member directory and map - but not so sure ...

RP would vote for (very rough order)

  • US2 - Pan-OKFN activity stream
  • US4 - Basic stats and trends for projects/activities
  • US1 - Member directory and map - but not so sure ...

Try-out js: simple person search and display page

Aim: create a page that allows you to search for persons with results shown in a list on LHS pane. Selecting a person should show full details on RHS pane.

Details:

  • Create a an html page person.html in app/
  • Javascript and css should go in app/js and app/css
  • Have simple form for searching at top of page. Intercept submit in javascript and do a search with it
  • Use jquery ajax jsonp call to get list of people from http://webstore.thedatahub.org/okfn/dashboarddev/person?name={name}
  • Display these people in html list. Make name in html link
  • Click on html link should bring up details on right

After we have done basic version next step will be to refactor to use Backbone so worth starting to read up on this now.

Automate extraction of member list from database

At the moment one has to do this by hand:

  • Go to db server (or server with access to db server)
  • Run the scripts/members.sql
  • scp the csv onto local machine and add to source repo (in data) so others have access to it

Reconciliation system for users referenced in activity

  • Need to fill person_id field on activity.
  • Should do this separately from activity creation (in a separate reconciliation process)

Proposed setup:

  • Enter: author name to username matches into reconcilication table in gdocs
  • Go through reconciling and add to activity table and new column called person_username that links to the person table username column

Questions:

  • What happens if no person with that username (need to create a person)
  • Dealing with anonymous stuff (leave username blank? create anonymous person)

Rebase Dashboard as front-end atop the Activity API

Suggest:

  • Boot this front-end as a Brunch project. This handles vendor libs, dependancies, minification, Backbone model/view/controller seperation, test suites, templating, and intermediate languages of your choice such as...
  • CoffeeScript! Porting is painless. Smile as the code shrinks, closures and object bindings are expressed purely in syntax, and global scope is never again polluted.
  • Connect to the Activity API instance for nearly-real-time data collected by scrapers running in the cloud. (Thanks Heroku).
  • Get a minimal viable app which generates a map of users via Recline. ("Back to where we started"...?)

Import new logo graphics

The official OKFN logo is now a more saturated teal colour; overwrite the dashboard embedded graphics.

Project Overview Information

See US#4 and US#3. Suggest

  • Some measure of attention/reach (can we summarize into 1 or 2 key values)?
  • Activity summary: can we summarize activity into one value - we could then show in a sparkline or similar. Alternatively we could have a simple colour or symbol display (e.g. Green for “increasing/high” red for “decreasing/low”) to convey:
    • Is activity high or low (relative to what?)
    • Is activity increasing of decreasing (month on month)
    • Date of most recent activity

Check out Crowdbooster

We've got some historic snapshots of interesting social networking data in Crowdbooster.

There's no API, so we can't feed off this source directly. But we could pull out the historic data and track these metrics (in particular, Facebook) ourselves.

I'm just saying: Before writing this all from scratch, check out how Crowdbooster have done it to minimise reinvention. Community team just want a couple of key metrics in one place, and Crowdbooster is not a very Open place to have all that.

Main mailing lists to highlight

  • OKFN Announce - our main news and fundraising site linked to on the main site
  • OKFN Discuss - general discussion about OKFN issues

Not sure of the value of having OKFN Help or OKFN Coord there...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.