Making Open Data Useful: Citygram

Post on 20-Jun-2015

312 views 0 download

Tags:

description

Presentation about 2014 Code for Americal Fellowship project, Citygram. Watch the video online: https://www.youtube.com/watch?v=zpO32d5IUTI&list=PL65XgbSILalVoej11T95Tc7D7-F1PdwHq&index=20 Get involved with Code for America: www.codeforamerica.org/action

transcript

Making Open Data Useful

BY 2014 CODE FOR AMERICA FELLOWS

Danny Whalen // @invisiblefunnelErik Schwartz // @eeeschwartz

Livien Yin // @livienyin

● What is Citygram?● How does it work?● Why was it built this way?● How can you get involved?● How did this work in Lexington?

Here’s what we’re talking about today!

This is about designing for the community.

Get ya awesome on

Citygram is a notifications platform for subscribing to your city. It uses the power of

open data to inform you of the things you care about, where you care about them.

3 GOALS FOR CITYGRAM

01 // increase citizen engagementby providing automated, meaningful info about what the city is doing

02 // be proactive, not reactivereduce the burden on staff to respond to repetitive requests

03 // demonstrate the capabilities of city open data portals

build trust with citizens through openness and accessibility

UNDERSTANDING THE CONSTRAINTS

USE CASE // civic apps are not the intended use case for open gov data

SPEED // gov data systems are not designed for speed

CADENCE // data reflects the processes through which it was created

Screen Shot

The Open Data Site

FOUR KEY GUIDING PRINCIPLES

1. User Experience Design: start with user needs to transform data in a way that is accessible to citizens.

2. Agile Development: a process of iterative, incremental software development that values constant learning and building.

3. Flexibility: be able to hook into machine-readable data sources in common formats.

4. Generalizable: across cities, for the greatest possible impact.

BACK-END ARCHITECTURE SKETCH

HOW IT WORKS

How can you integrate your open data with Citygram?

citygram.org

HOW DOES A DATASET BECOME A CITYGRAM TOPIC?CRITERIA WE’RE LOOKING FOR:

#1 meets citizen needs is there interest? does the city receive a lot of requests about this?

#2 consistently updated anywhere from every three minutes to once a month.

#3 accessible via API any standard, machine-readable format. JSON / CSV preferred.

#4 has both time + geo component notifications are sent in real time if the event location is in the citizen’s area of interest.

DATA TRANSFORMATION // extract, transform, load to geoJSON

{

"Y_COORD": "535574",

"PROJECTNAME": "Auto Sales",

"X_COORD": "1499638",

"RECORDOPENDATE": "2014-02-07T00:00:00",

"TASK": "Info Received",

"COORDINATORNAME": "Alice Christenbury",

"PROJECTDESCRIPTION": "Construct retail auto sales facility on vacant parcel. Grading permit, tree

review, storm water detention, and PCCO review is required.",

"PROJECTTYPE": "Commercial (Regular 15 business day Review)",

"URL": "https://aca.accela.com/charlotte/Cap/CapDetail.aspx%63Module=

LandDevelopment&TabName=LandDevelopment&capID1=14LDC&capID2=00000&capID3=00012",

"OWNERNAME": "FRANCIS BROTHERS INVESTMENT GROUP LLC",

"RECORDSTATUS": "Approved",

"OWNERADDRESS": "6831 PINE LAKE LN",

"PROJECTNUMBER": "LDC-2014-00012",

"PARCELNUMBER": "11116306",

"PROJECTMODULE": "LandDevelopment",

"ADDRESS": "9907 ALBEMARLE RD, CHARLOTTE, NC 28227",

"RECORDSTATUSDATE": "2014-08-07T00:00:00",

"CONTACTADDRESS": "",

"_id": 8032,

"OWNERPHONE": "7045023809"

}

{

"Y_COORD": "535574",

"PROJECTNAME": "Auto Sales",

"X_COORD": "1499638",

"RECORDOPENDATE": "2014-02-07T00:00:00",

"TASK": "Info Received",

"COORDINATORNAME": "Alice Christenbury",

"PROJECTDESCRIPTION": "Construct retail auto sales facility on vacant parcel. Grading permit, tree

review, storm water detention, and PCCO review is required.",

"PROJECTTYPE": "Commercial (Regular 15 business day Review)",

"URL": "https://aca.accela.com/charlotte/Cap/CapDetail.aspx%63Module=

LandDevelopment&TabName=LandDevelopment&capID1=14LDC&capID2=00000&capID3=00012",

"OWNERNAME": "FRANCIS BROTHERS INVESTMENT GROUP LLC",

"RECORDSTATUS": "Approved",

"OWNERADDRESS": "6831 PINE LAKE LN",

"PROJECTNUMBER": "LDC-2014-00012",

"PARCELNUMBER": "11116306",

"PROJECTMODULE": "LandDevelopment",

"ADDRESS": "9907 ALBEMARLE RD, CHARLOTTE, NC 28227",

"RECORDSTATUSDATE": "2014-08-07T00:00:00",

"CONTACTADDRESS": "",

"_id": 8032,

"OWNERPHONE": "7045023809"

}

CURATION // what elements are important to the citizen?

TRANSLATION // turn machine-speak into human speak

ELEMENTS

> project name

> project description

> URL

> address

TEMPLATE

Hi! A new land development permit has been submitted near you at [ADDRESS]. The project is called [PROJECTNAME] and proposes to [PROJECT DESCRIPTION]. Find out more at [URL].

Citygram as a platform

SpyGlass: API adapters

AKA “web content transformation proxy” (lolz)

INTRODUCING...

Lexington, KY

Citygram Integration: a case study

MOST BASIC REQUIREMENTS

Create a geoJSON file for each dataset

Perfectly flowing data (go back in time for a great session at 9am today!)

WHERE WE WANT TO END UP

GET LEAN

We inched our way towards automation

Kept system continually integrated

Pentaho Data Integration to update the data portal

We schedule it 2x’s per hour

SHORT VERSION

SIDE NOTE // geocoder to find address and parcel info

You can use many other geocoders

We’re still evaluating best approach

OPEN DATA PORTALS

Extremely flexible: Beauty of Citygram

Save a geoJSON file to a webserver

Citygram picks it up!

Use whatever automation/ETL processes at your disposal

MORE FLEXIBILITY // more better

Get to know and love each dataset.

Evaluate the possible messages for the available information.

VERY IMPORTANT

Let’s make this meaningful! Woo

Try it out!

thank you.questions, comments welcome

citygram@codeforamerica.org#citygram

@invisiblefunnel // @eeeschwartz // @livienyin