Upload
code-for-america
View
314
Download
0
Tags:
Embed Size (px)
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
Citation preview
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
[email protected]#citygram
@invisiblefunnel // @eeeschwartz // @livienyin