2014年7月1日

台南311開發紀錄 (下)

台南311之 Android app

整個台南311的project,我們花最多的時間在於設計一個回報的App。
接下來介紹我們開發的台南311 app的功能與紀錄開發過程中的心得,懶得打太多直接看影片吧!

先來看操作的畫面


一開始進去利用地圖的方式呈現你附近回報的問題,大概是最近50筆或90天內(Server端設定)。紅色的圖標代表待處理的問題,綠色的則代表已處理。當然點擊圖標會跳出簡單的問題描述,點擊描述則會進入該筆回報資料的詳細狀況。

地圖下方的”回報問題”按鈕主要考慮到快速回報,所以放了一顆在這裡。更多的功能可從左方可拉出選單,包含以List的方式呈現所有問題,或是你回報的問題(後來沒空實作)。

回報的流程

點選回報問題後,就如同畫面的上的提示五步驟:

  1. 把問題標記在地圖上

    標記地圖時,地圖會先移到你目前的位置,然後你可以透過拖動地圖把箭頭指到發生的地點。拖拉的過程中,地圖會標記出已經回報的問題,這樣可以避免回報到重複的問題。實際使用上在定位時可能同時需要參照衛星照片跟地圖,所以右方有一個可以快速切換地圖模式的按鈕。

  2. 拍照

    可開啟相機拍照或直接選取已存在的照片

  3. 描述問題

    為了快速回報,會預先幫忙填好姓名跟email,如果有修改會自動紀錄。

  4. 上傳並點選確認信(只需要確認一次)

    只需做第一次確認,因為app會自動紀錄密碼。(FixMyStreet的機制)

  5. 完成回報

    這一步其實沒有任何操作

開發過程的困難

FixMyStreet號稱支援Open311

因為原本就預計使用Open311的API去跟FixMyStreet溝通,但是實際上遇到了一些問題。

  1. FixMyStreet的Open311 XML format看起來沒什麼問題,不過我們的app使用json format為主要資料格式,發現fixmystreet json format其實是不符合標準的,變成收到API後還要先做資料的處理把他轉成標準的Open311 format,然後才能繼續處理下去。

  2. FixMyStreet 看起來並沒有支援Open311的post request。也許有但是我們一直試不出來,而且也找不到明確相關的文件,於是礙於時間關係,我們最後直接參考FixMyStreet mobile的做法,發http request去新增。

  3. FixMyStreet針對API的支援還是有點模糊,像一些post參數都不知道是什麼意思,只能用試的。後續如果要精進,應該要先從API介面下手,直接跟後端的PostgreSql溝通,這樣可以直接避免去修改原本的Perl邏輯。

  4. Update的資訊還沒空認真研究,不過似乎沒有明確的API。

最後想法

以快速建立一個可用的問題回報系統的角度來思考,FixMyStreet目前提供的功能跟穩定性,可以說是目前最適合的Solution。比起自己辛苦建立一個回報系統,不如直接使用FixMyStreet這種現行的系統,然後透過實際運作再慢慢客製化讓它更符合台灣使用。

其實不管是FixMyStreet或是Open311,我們真心的覺得這是一個非常有意義的東西,但是還是有太多東西不是我們可以控制的。包含怎麼跟政府合作這一段,其實政府有沒有興趣都不知道…XD,因為黑客松無法有效的將東西報告出來。雖然說FixMyStreet支援email回報,我們大可以直接寄給回報到政府單位的信箱,但是這樣子的模式其實不利於後續的擴充跟整合。

嚴格說起來,我們都是軟體工程師,不是很擅長也不喜歡跟政府打交道,至少我們已經證明這樣的東西是可以work,以現階段來講已經夠了,至於後續會不會繼續發展下去,這個就再說吧。

App的Source在未來的某一天會Open出來,等我有空吧..XD


相關文章: 台南311開發紀錄 (上)

沒有留言:

張貼留言