Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

iMMAP Community Mobilization for Partnership in Schools

Looking at one tool to assist project Monitoring & Evaluation (M&E) in support of the USAID Community Mobilization for Partnership in schools, Sindh province Pakistan.
by

Patrick Fitzgerald

on 7 December 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of iMMAP Community Mobilization for Partnership in Schools

months
Problem...
The Education Secretariat of Sindh requires regular updates from the field to track monitoring & evaluation of district schools & school activities including Community Mobilization in Northern Sindh.
Total Functionality Required
Add, edit school location from the field

Send updates on a school or school activity including Community Mobilization from the field

Display other implementing partners within close proximity from the field & chat live

Receive field notification of school updates to track project progress from the office

Add, edit & update schools data captured in the field from the office

Extract data for further analysis & reporting from the office

Create a public website to showcase the project
1.
2.
3.
4.
5.
6.
that's easy, how hard could it be...
okay, so that makes it interesting. lets look at that on a timeline...
3
the timeframe of the project is 3 months with an immediate need for application deployment.
2 March 2013
2 April 2013
2 May 2013
Startline
2 June 2013
application development & software deployment
establish office/procurement
field team deployment & training
data capture & maintenance
website deployment to showcase project
project reporting & report requests
training, capacity building & hand over to Government
so much to do, such little time...
this just in from HQ DC.... complete the project while promoting a common iMMAP brand across all deliverables
High Level Mandate
so lets look at a framework tailor made to satisfy the requirements & a concept to handle that within the timeframe
Ok...
SDI
HTML5
so what are the total list of functions we actually need to satisfy the Education Department...
7.
field
field
field
office
office
office
web
the web has changed...
HTML5 includes the fifth revision of the HTML markup language, CSS3, & a series of JavaScript APIs. Together, these technologies enable the creation of complex applications that previously could be created only for desktop platforms.
what does that mean?
This means that the application architecture has changed from 3 tier to a 2 tier architecture that runs entirely on the client and cuts out the middle man.
data store
server tier
client tier
HTML5? its just hype, who cares?
Everyone
Apache
Apple
Google
IBM
PostgreSQL
Microsoft
OpenLayers
Orcale
Open Street Map
Yahoo
node-express
node-openlayers
node-jquery
node-postgres
GeoJSON
GeoCouchDB
"_id": "618f6d552f8cf3061934a4d087000d55",
"_rev": "1-06b9a4a10fc3d2dc062d310d7cd28b59",
"name":"Schools",
"cmp_programe":"School Feeding",
"imp_partner":"UNWFP",
"value":"82",
"geometry"{
"type":"Point",
"coordinates":[68.182,27.538]
}
CouchDB started as a document store with the great ability to replicate data between nodes.

The built-in replication makes it the ideal platform for synchronization between mobile, desktop and server.

CouchDB sports no fixed schema, instead it stores documents which are formatted in JSON without a rigid schema.
http://blog.couchbase.com/volker
GeoCouchDB is an extension by Volker Mische that handles GeoJSON and includes an R-tree index (collection of bounding boxes) for quick geographic lookup.
the GeoCouchDB roadmap includes bindings to PostGIS functions for spatial analysis
node-mysql
so thats the framework, whats the concept?
Node.js is a platform built on Chrome's C++ V8 JavaScript runtime for easily building fast, scalable network applications.

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
http://nodejs.org/
Node.js has many a long list of node-modules, including;
https://github.com/joyent/node/wiki/modules
Express.js is a minimal and flexible Node.js web application framework.

Using Express.js, it is easy to get a simple web server up and running.

Express.js robust functions include templating for rapid application deployment
client tier
2 tier client database architecture
now to examine a technology framework that implements HTML5
great. so how does it work?
... in a new perspective
http://expressjs.com/
as well as.....
data store tier
...so that is interesting, what is the framework?
https://npmjs.org/package/node-jquery
https://github.com/booo/node-openlayers
https://github.com/brianc/node-postgres
https://github.com/felixge/node-mysql
before we begin, we first need to see the same thing...
Node.js & Express.js combine to enable classical HTML5 & CSS3 web pages to run on any operating system & on any client.

Node.js modules provide the additional functionality, including node-openlayers.
database connection? easy.
the key direction on the client is with NoSQL due to its consistency.
"...
Consistency: That all database clients see the same copy of the data.
Availability: That all database clients are able to access a version of the data.
Partition tolerance: That the database can be split over multiple servers.

Since CouchDB’s focus is on being partition-tolerant and highly available, this means it is eventually consistent.
..."
(M. Thompson.,
Getting Started with GEO, CouchDB & Node.js
).
Consistency?
var mysql = require(
'mysql'
);
var connection = mysql.createConnection({
host:
'localhost'
,
user:
'me'
,
password:
'secret'
,
});

connection.connect();

connection.query(
'SELECT 1+1 AS solution'
, function(err, rows, fields){
if(err) throw err;

console.log(
'The solution is: '
, rows[0].solution);
})

connection.end();
https://github.com/felixge/node-mysql
node-mysql
HTML5 & CSS3 client tier
SQL data tier
NoSQL data tier
var pg = require(
'pg'
);
//native libpg bindings = var pg = require('pg').native
var connStr =
'tcp://postgres:1234@locahost/postgres'
;

var client = new pg.Client(connStr);
client.connect();

//queries are queued and executed one after another once the connection becomes available
client.query(
'CREATE TEMP TABLE beatles(name varchar(10), birthday timestamptz)'
);
client.query(
'INSERT INTO beatles(name, birthday) values($1, $2)'
, [
'John'
, new
Date(1944, 10, 23)
]);
var query = client.query(
'SELECT * FROM beatles WHERE name = $1'
, [
'John'
]);
time
//can stream row results back 1 at a
query.on(
'row'
, function(row)){
console.log(row);
console.log(
'Beatle name: %s'
, row.name);
//Beatle name
console.log(
'Beatle birth year: %d'
, row.birthday.getYear())
//dates are returned as javascript date
});

//fired after last row is emitted
query.on('end', function(){
client.end();
});
https://github.com/brianc/node-postgres
node-postgres
just make a request.
RESTful HTTP API
this is possible after MapReduce
map {}
http://slides.html5rocks.com/#landing-slide
HTML5 Features
GeoCouchDB
CouchDB
Learn More
http://www.couchbase.com/presentations
http://www.everytalk.tv/talks/1254-Erlang-Factory-Lite-Munich-Germany-CouchDB-and-GeoCouch
map {}
map {}
reduce {}
http://127.0.0.1:5984/schoolsdb/_cmp/imp_partner/_view/unwfp?limit=1
2 tier client database architecture
1. framework
2. concept
http://wiki.openstreetmap.org/wiki/OSMCouch
&
OSM
OSMCouch is storing Planet.osm data in CouchDB with GeoCouch extension.
GeoJSON data can be retrieved for any use case or viewed with OpenLayers, extended with POI tools.
outcomes
rapid deployment of all data capture, management & export for information management as well as presentation tools using the same base template & functionality.
less software
less functions
less code
less maintenance
targeted application with specific functionality for rapid deployment
is more
>
Replication
the four basic functions of a database (CRUD);
CREATE
HTTP
PUT
schoolsdb/school-415070023
READ
HTTP
GET
schoolsdb/school-415070023
UPDATE
HTTP
PUT
schoolsdb/school-415070023
DELETE
HTTP
DELETE
schoolsdb/school-415070023
http://www.erlang-factory.com/upload/presentations/359/geocouch-online.pdf
SQL, that's great! we can send data to the SDI.
SQL - NoSQL Integration
OSMCouch
http://slides.html5rocks.com/#geolocation
http://slides.html5rocks.com/#notifications-api
http://static.mrdoob.com/projects/chromeexperiments/ball-pool/
For Fun
HTML5 Demo
http://www.geoinfo.info/geoinfo2011/papers/claudio.pdf
http://wiki.openstreetmap.org/wiki/OSMCouch
how is this implemented?
when a record is entered, updated or deleted on any client database
CREATE
HTTP
PUT
schoolsdb/school-415070023
READ
HTTP
GET
schoolsdb/school-415070023
UPDATE
HTTP
PUT
schoolsdb/school-415070023
DELETE
HTTP
DELETE
schoolsdb/school-415070023
(
Volker Mische, 2011
)
it is instantly replicated throughout every client db including revision
replication can set to;
continuous,
push, and/or;
pull.
http://www.geoinfo.info/geoinfo2011/papers/claudio.pdf
PostgreSQL + PostGIS
a base HTML5 & CSS3 template is used by Express for each application generated, streamlining all following interfaces & promoting a common iMMAP brand
the HTML template includes by default;
additional content & functions will be included on top of the base template with each of the following applications...
HTML5 Template
the admin application is designed for use by a country office to deploy data capture & data management Projects.
+ New Project enables the user to create a data capture application using a form builder.
the form builder creates HTML5 forms and a couchdb database for client data capture...
the document schema is then sent to the iMMAP SDI offering API web services for RDBMS generation.
implementing ODK or Imogene, the web service generates a Project specific RDBMS based on the form parameters.

all data captured for a specific Project within a country office will eventually reach the iMMAP SDI.
Pakistan
Sbep Schools
Security Incidents
SRD Flood Response
SQL & NoSQL integration? How?
however OGC web services would be the best option for long term ease of maintenance & transparency.
of course direct access is possible using node-postgres
for all Projects deployed in the country office (Maps, Projects, People & Groups) information is automatically collected & can be managed
OASIS Web
the web services implemented including data processing and PDF print for Oasis Web can largely be reused by client
Community Mobilization
once deployed, Project analytics can be viewed from the admin panel including usage, users, location & data
the search is used in conjunction with the selection from the left menu (i.e. for Projects)
the country office admin client is implemented in couchdb & stored in the iMMAP SDI
a data capture Project for CMP has been designed and deployed from the admin, lets take a look
the main search is used in conjunction with the selection from the left menu (i.e. for 'Everything' or just for 'Projects')
CMP
country office Project
the form generated in the admin application is deployed as a Project enabling the addition & update of CMP information from the desktop
users can be defined in the People tab & dragged into groups, such as;
UNHCR
WFP
GoS
iMMAP
USAID
add, edit, update
users/user groups
deploy Projects
form builder
iMMAP SDI
Project analytics
manage information
using HMTL5 it is possible to track user locations, receive field notifications, initiate live chat and send group sms to users, groups or those within a proximity in the field from your office location.

notifications are received on school updates from the field that can be reviewed & located on the map interface, i.e.;
School feeding in School 415070023 has commenced on schedule.
notification feed
deploy application
from the Project it is possible to deploy a mobile application based on the generated Project form.
the operating system is specified so the Project knows what install scripts to use
OSM Tiles are also included in the deployment, with the users & user groups already defined as above
the functionality is basic & native to HTML5, specifically focused on data capture, live chat & location
HTML5 automatically calculates geolocation
schools and CMP programs can be updated from the field
school locations can be added
HTML5 is live
in this example, a user from WFP has updated their status to 'School Feeding' to indicate a school feeding program has begun
all other users are notified live & can see the status on the map
live chat is another feature which is possible, so that an implementing partner can quickly chat with the WFP user to find out more
auto Geolocation
add a school
update a CMP program for a school
live chat, notifications & sms
on top of all this, sms notifications can be sent to users, groups or to those within proximity
Notification feeds update the Information Management Officer (IMO)
live chat, live tracking
with the iMMAP HTML template, it is possible to prepare email notifications from the data captured within the system & send to users & user groups.
this includes graphs and charts generated in the report module.
email
of course, with any JQuery or HTML JavaScript chart library, a comprehensive data report module can provide statistics & charts for the user (from data directly on the client!).
data reporting module
using gdal, data can be extracted for analysis in dedicated GIS & statistics analysis engines including ArcMAP, uDig & SRSS.
http://www.gdal.org/ogr/ogr_formats.html
the country office project data is sent to admin as well as the allocated RDBMS database stored in the iMMAP SDI
CMP
built on the same HTML5 framework, the final objective is completed with a website including selected functionality displaying the latest data to showcase the project
continuous replication
web showcase
to satisfy the high level mandate from DC, the following templates are generated & deployed to promote a common iMMAP product
streamlined templates
internal & donor report template
reports
PPTX power point templates for presentations & trainings
presentations
HMTL
now the user can....
http://static.mrdoob.com/projects/chromeexperiments/ball-pool/
HTML5 canvas & graphics can also be investigated for interactive charting
live chat, live tracking, notifications, group SMS
users/user groups
data reporting
email template
notification feed
manage information
+
the project field survey & monitoring tasks are complete, the data is extracted from the system for analysis & reporting.
with enhanced tools for data capture & information management, the donor can be satisfied with a good result as well as a final website to showcase the projects success!
data extract (gdal ogr 2 ogr)
form builder
Project analytics
search box in banner
user login
left menu
left menu filter
iMMAP SDI
data extract
manage projects
deliverables
HTML templates for desktop, web, mobile & reports
with the database registered, now back to the client...
now to review database registration at the iMMAP SDI
iMMAP SDI
the admin features...
2 March 2013
2 April 2013
2 May 2013
Startline
2 June 2013
useful for GPS data capture as well as live location display
Admin
country office
maps & map tiles can be selected as well as specific functionality modules for the deployed Project (we will visit a deployed Project shortly).
Project setup
Project setup
Full transcript