Skip to content
This repository has been archived by the owner on Mar 18, 2019. It is now read-only.

Design Document

Cliff Ingham edited this page May 31, 2013 · 12 revisions

Design Document

This is a reference client of the GeoReport v2 protocol. The protocol is documented at http://wiki.open311.org/GeoReport_v2. Before understanding the feature requirements, you'll need an in-depth undestanding of the spec.

This is a port of the iOS app at https://github.com/City-of-Bloomington/open311-mobile. These two apps should share the same set of core features.

Development Principles

  1. Target Android 2.3 and wait to see if the Support Package improves
  2. Support older versions using the Support Package
  3. Plan for a separate app to target Android 4.0 to handle tablets and phones using the same app http://developer.android.com/guide/practices/tablets-and-handsets.html
  4. Follow Android Design guidlines as much as possible

Feature Requirements

Contact Information

A settings screen is needed. We should not read a person's contact information directly from the phone. The report screen should provide a toggle switch to turn Anonymous posting on/off.

https://github.com/City-of-Bloomington/open311-mobile/issues/93

Available Servers

Each open311 endpoint requires a separate api_key. The app needs to know the list of endpoints it can communicate with. Endpoint data needs to be embedded in the app, as it's not available anywhere else. The required information for each endpoint is:

  • name
  • url
  • jurisdiction_id
  • api_key
  • supports_media

Submitting a Report

Choosing a service

In order to start submitting a report, users must choose a Service. The list of services is obtained via the endpoint's GET Service List query Services presented to the user should be grouped according to GET Service List

Filling out the report

GET Service Definition/POST Service Request Services often define very long questions for their attribute labels. It's best for the user to answer each field on a separate screen. This gives the maximum amount of room to display long questions with big controls.

My Reports

The open311 specification does not include a way to identify individual users. However, we still want users to be able to check back on reports they've submitted. The app must save all reports to the mobile device when the report is posted. Display the list of saved reports

View Report

Selecting a saved report should display all available information for that report. GET Service Request