前言
在古蹟app大致完工的時候,大約還剩兩個禮拜多的時間,我們決定做點不一樣的東西,希望能夠把Open311的東西透過這一次的台南黑客松,介紹給台南市政府。不過黑客松只給3分鐘報告,看來我們報告失敗的很徹底,完全沒有得到預期的效果。黑客松都已經過了,中間的過程也懶得再提了,寫下這篇主要是要紀錄一下開發台南311的過程,跟一些還需要被解決的問題。
下面這段是報名2014台南黑客松時,寫下的專案簡介。
有感於目前台南市問題回報機制不夠簡便及透明,本團隊期望導入Open311國際標準並利用行動裝置的特性,讓市民可以快速通報問題並追蹤後續處理的進度。
結合網頁和後端追蹤系統,讓不管電腦或是手機,皆可以關心自己或其他人通報的問題。主要功能有
- 利用手機定位及拍照,快速回報問題(如: 地面坑洞, 號誌燈故障)
- 列出附近或是最近這段時間內有人回報的問題
- 追蹤特定問題處理進度
預計通報問題類別 (暫定)
- 道路問題
- 路霸與騎樓佔用
- 市容整潔
- 號誌、路燈故障
- 其他
簡單來說就是,我們希望做一個Android App,這個app可以透過Open311的標準,讓一般市民在路上看到問題可以在30秒內,快速的將問題回報給市政府,讓問題回報變成一種舉手之勞。
可能有人會問,為什麼不用現在市面上的open 311 app呢?基本上根據評分還有個人使用的測試經驗,真的是很不好用,所以我們才會想要試著自己寫一個311 app。
從Open 311開始
一開始的構想來自於一個新聞報導,台南市「1999」市民服務專線 不滿意度高達三分之一。我看到這新聞覺得很驚訝,因為我根本不知道台南有1999。於是我在想會不會也有線上回報機制,然後我在台南市政府的網頁找到了線上即時服務系統。如果你點進去看你會發現一件事,就是你要有單號才能查詢問題回報的狀況,然後你還找不到回報的頁面。不過,最後我發現了,你要先點網站導覽然後才能看到1. 線上即時服務系統,有沒有這麼隱密啊!接下來你會遇到34大項的分類,當然裡面還有很多小項,我一直不懂,這樣設計是要給誰用阿,難道我還要很明確的知道我回報的問題是屬於那一項才行嗎?很明顯這樣的設計是為了責任單位不是為了民眾。就像佔用道路人行道騎樓跟騎樓佔用就分屬不同兩個大類。
抱怨完回到正題。
Open311 GeoReport v2是一個關於讓地方政府可以收到問題回報的一個標準,一般適用於非緊急的問題。那Open 311跟原本的美國311或是台灣的1999相比有什麼好處?我覺得大概有以下的優勢,也是我覺得目前1999的一些缺點:
- 1999資料不透明,容易造成重複回報的現象,浪費資源。
- 沒有即時的狀態更新,造成市民以為市政府效率不好
- 例如:已通知承包商,預計3日內修復之類的更新。
- 1999是用電話的方式,回報資料不容易數據化,無法做更進一步的分析。
- 1999必須透過電話描述出問題發生的地點,如果不熟悉附近區域,可能會有問題。
- 目前線上web回報機制,沒有標記經緯度的功能,一樣有位置描述的問題。
- 回報問題資料不公開,市民不了解市政府修復了多少問題,只給出數字人民無法信服。
其實Open311本身定義的非常的簡單(很陽春),只有6個API而已,所以實作上並不會很困難,但是最大的困難在於沒時間做後端問題追蹤管理系統,於是為了搶時間想說拿Redmine來用,反正只是 demo,透過api去新增issue。大致的架構如下:
Android -> Open311 API service(Clojure) –> Redmine
不過真正動手研究後發現,Redmine的API存在單向的問題,新增沒什麼問題,就是查詢的api跟open 311的參數接不太起來。搞了兩三天後確定行不通,於是當機立斷,直接找現成的solution。在Open311的wiki上其實有列了一些Open 311 Server端的資訊,經過一些Survey後,我最後決定使用跟Open311沒什麼關係的FixMyStreet作為後端。
當時選擇FixMyStreet的solution主要有以下的考量
- OpenSource 不過是用Perl開發的
- 安裝方便,文件完整,還一直有在持續maintain
- 其實比Open311還早,而且運作的不錯
- 已經在不同國家運行,Open311似乎只集中在北美
- 號稱有相容Open311 (後來才發現不甚理想)
FixMyStreet in 台南
主要紀錄架設FixMyStreet Service中的過程跟一些心得。
FixMyStree簡介
FixMyStreet是英國的mySociety這家社會企業的一個OpenSource Project(AGPL), 是一個web-base的服務,讓一般人可以透過網站回報一些問題,如路面坑洞、路燈號誌故障、塗鴉…之類的地方問題。
FixMyStreet目前提供的功能非常的完整,只需要做點簡單的設定就可以開始基本的運作。不過因為主要是使用Perl開發,所以在後續修改及擴充上上是一個比較棘手的問題。由於目前我的AWS Free Tier已經到期了,所以http://FixMyStreet.tw是關閉中的,後續不確定是否會再繼續。
FixMyStreet已經被應用英國以外在其他的國家
- Australia: FixMyStreet (http://www.fixmystreet.org.au/)
- Belgium (Brussels-Capital Region only): Fix My Street - (http://www.fixmystreet.irisnet.be/)
- Canada: FixMyStreet (http://www.fixmystreet.ca/)
- Cyprus: FixCyprus (http://fixcyprus.com/)
- Georgia: http://chemikucha.ge/
- Germany: Mark-a-Spot (http://www.mark-a-spot.org/)
- Korea: FixMyStreet (http://www.fixmystreet.kr)
- Netherlands: Verbeterdebuurt (http://www.verbeterdebuurt.nl/)
- New Zealand: FixMyStreet (http://fixmystreet.org.nz/)
- Norwegian: Fiksgatami (http://www.fiksgatami.no/) funded by NUUG (Norwegian Unix User Group)
- Greece: fixMyGreece (http://fixmygreece.com/)
- Japan: FixMyStreet (http://www.fixmystreet.jp/)
- Sweden: FixaMinGata (http://www.fixamingata.se/)
- Switzerland: Zurich’s ZueriWieNeu (https://www.zueriwieneu.ch/)
- Tunisia: FixKairouan (http://fixkairouan.org/)
FixMyStreet 提供的功能
FixMyStreet Web主要提供的功能如下:
- 查看目前各地方單位的回報
- 查看你的回報
- 在地圖上查看回報
- 透過地圖上標點,上傳照片及問題描述回報問題。
- 系統會根據回報類別及地圖範圍回報給對應的處理單位
- 回報者的mail確認
- 問題追蹤訂閱
- 區域更新的訂閱
- 不同方式跟受理單位的後端整合
- mail (預設)
- Open 311
- 參閱: http://fixmystreet.org/customising/integration/
FixMyStreet 安裝與修改
安裝
關於FixMyStreet的安裝可以直接參考http://fixmystreet.org/install/ ,基本上應該就是Step by Step跟著做就對了。我選擇最簡單的方式就是用AWS EC2,直接掛上他們提供的AMI瞬間就完成了。
中文化
FixMyStreet目前還沒有中文化,不過他的架構已經是使用gettext的方式,所以只需要修改po檔就可以了。我已經將大部分一般人可以看到的訊息給中文化完,不過因為有些詞不知道怎麼翻譯,例如他們的問題都是回報到Council,但是如果翻成議會感覺怪怪的,所以目前是暫時使用”受理單位”這個模糊的詞彙。目前所有的翻譯還是先放在我folk出來的repository.
有興趣的人可以參考
https://github.com/misgod/fixmystreet/tree/master/locale/zh_TW.UTF-8/LC_MESSAGES修改conf/general.yml
基本上直接參考檔案內的註解就可以了。參考台南311的設定
設定回報類別及受理單位的mail
因為FixMyStreet會去檢查回報者的姓名字元必須大於5,所以這一個限制本身用在台灣是有問題的,所以我有寫信去給mysociety的人,他們說之後會修改。所以在目前這個時間就自己先拿掉檢查。
修改perllib/FixMyStreet/DB/Result/Problem.pm
修改web/js/fixmystreet.jsWeb及CSS的修改(這個我沒做)
FixMyStreet有個機制叫Co-brand讓你可以針對ui或是程式碼做一些客製化。
相關文章: 台南311開發紀錄 (下)
沒有留言:
張貼留言