Revision as of 16:16, 7 August 2017

In this activity students will learn about Open APIs, how does it relate to open source and how to use in building a mobile application.

Prerequisite Knowledge

CS2 using Java and basics of Android development

Learning Objectives

To understand what an Open API is.

To understand how open APIs relate to open source.

To be able to use open APIs in mobile application development

To specifically use the FEMA open data API to build a simple Android accessibility application.

Background

This activity is meant to educate students about open APIs and how to use them in Android app development. The activity is targeted for crisis management APIs to emphasize the humanitarian aspect of HFOSS.

For example, the following http request retrieves data for Housing Assistance Owners.
To test the API, run the http request on your browser. For example, the House Assistance Owners API (http://www.fema.gov/api/open/v1/HousingAssistanceOwners) when executed on the browser runs this partial record.
"
{"metadata":{"skip":0,"top":1000,"count":0,"filter":"","format":"json","orderby":{},"select":null,"entityname":"HousingAssistanceOwners","url":"/api/open/v1/HousingAssistanceOwners"},"HousingAssistanceOwners":[{"disasterNumber":1983,"state":"MS","county":"Adams (County)","city":"NATCHEZ","zipCode":"39120","validRegistrations":29,"averageFemaInspectedDamage":8176,"totalInspected":16,"totalDamage":130819,"noFemaInspectedDamage":10,"femaInspectedDamageBetween1And10000":3,"femaInspectedDamageBetween10001And20000":0,"femaInspectedDamageBetween20001And30000":1,"femaInspectedDamageGreaterThan30000":2,"approvedForFemaAssistance":9,"totalApprovedIhpAmount":96070,"repairReplaceAmount":69315,"rentalAmount":20347,"otherNeedsAmount":6408,"approvedBetween1And10000":5,"approvedBetween10001And25000":3,"approvedBetween25001AndMax":1,"totalMaxGrants":1,"hash":"5a7d9748949c69e2b8c8bc7d93158820","lastRefresh":"2014-12-12T01:18:19.599Z","id":"546e064687456f7b0c07de85"}

"

Now choose two different APIs, run an http request for the API on your browser and copy a couple of records from the result in your report.

This output is in JSON format.

Part 3

Develop an Android App that provides an interactive interface to search and display a data feed from the FEMA data sets. Your App should use the sample code attached to retrieve data from an API and your task will be to design and develop and App that displays this data.

Deliverable

A report including answers for part 1 and part 2

A .zip and .apk of your Android app.

Notes for Instructors

Assessment

Criteria

Level 1 (fail)

Level 2 (pass)

Level 3 (good)

Level 4 (exceptional)

Understands what is a Open API and how is different that open source

Little to no understanding shown; Answers are made up or unrelated; Didn't read material

Limited understanding, showing that they read some, but did not dig very deep

Showed that they have done the readings with limited understanding

Clearly explain the answer to each question with supporting examples

Testing FEMA APIs

No testing

Testing with bad results

Testing with good results

Testing multiple APIs with the correct result

Create an Android App that retrieves data from a REST API

Did not attempt to create the App

App retrieves data but data is not parsed

App retrieves data and parses the json data

App retrieves data, parses data and displays data

An interactive interface is develped to display data

Did not attempt to create an interface

Create a limited interface for the app

Create a complete inteface displaying all retrieved data

Create an efficient interface with the ability to search/filter the data