用開源專案一起熱血世大運 — 歷程篇

Amdis Liu
7 min readSep 2, 2017

--

除了抱怨,捲起袖子做點什麼吧

一開始只是自己在8/17買世大運門票時處處受挫,賽程和購票分成兩個網站,買票那邊看不到賽程,我怎麼知道想不想買?購票鈕沒有剩餘狀態,點下去才告訴我說“當日票券已售完”,簡直是打地鼠兼猜謎。

官網購票頁面 (取自數位時代)

對於官網的種種不人性在FB貼了篇抱怨文後發現,居然有許多朋友受挫到連票都沒買到,在這樣自己生悶氣生了一天半後,在開幕戰當日下午,我問自己:

我是個工程師耶,除了抱怨,我可以做點什麼吧?

於是,想好了我要做的東西後,向兩位同事提案:

我: 我覺得查世大運賽程猶如pain in the ass,越想越生氣,我想要自己弄一個網站解決這件事,有興趣加入嗎?

同事: 好啊,你的計畫是什麼?

我:一個賽程查詢器加剩餘票券狀況,加上一些篩選條件 ,預計兩天內完成。

同事:應該沒什麼問題。

我 : Let’s do it. 待會馬上過去找你們討論。

得到戰力加入確認後,馬上開始列出規格與milestone並開始開發,兩天後8/21週一傍晚將網站上線,踏上了我們預料之外的世大運旅程。

註: 此文主要寫的為非技術類的事情,關於開源專案的開發過程請見另一篇文: 用開源專案一起熱血世大運 — 開發篇

單純一股熱血與衝動,得到的回饋卻超乎想像

原本只是想幫助大家踴躍參與世大運,壓根沒想到後來被整合進了鍵盤世大運遊戲,登上了電腦王阿達自由時報,甚至在柯P貼文中列成購票連結 。

看到網友們的感謝留言;
看著購票鈕從很多藍色變成全部灰色的已售罄;
看到儘管票賣完了,依然每天都有人上網站查賽程;
心裡感到非常滿足,只是自己每天下班後為了上新功能新賽程,忙得都沒看到世大運live(倒)。

這次專案最困難的地方在於取得所有賽程的資料,官網的賽程網頁為英文,用爬蟲爬回來要轉換成中文很麻煩,開幕前兩天補上的中文賽程是圖檔,使用圖像文字辨識準確率不高,於是兩個選項都不考慮,只能手動了。

手工活這種事,工程師實在不擅長,且競賽項目高達二十種以上,為了讓工程師能專注於開發上,我向幾個非工程師的好友說明我要做的事,問他們是否願意幫忙手動輸入賽程資料和製圖,沒想到大家都一口答應呢!

且是不求任何回報的答應,大家都希望台灣更好,希望世大運更多人參加。這讓我想到一句話:

「真心想完成一件事情,全世界都會來幫忙」 — 節錄自牧羊少年奇幻之旅

熱血後的成果

我們將賽程與購票拉到同一個頁面加上剩餘票券偵測, 配上四種篩選器: 競賽項目、日期、場館、對戰組合,讓使用者可以快速找到自己要買的場次:

Nth Space 世大運賽程資訊頁面

來看一點點有趣的GA數據。

數據日期區間: 2017/08/21–2017/09/01 (Google Analytics在8/22下午才加入)

總瀏覽量: 66,010單日最高瀏覽量: 26,061, 8/23晚上被柯P分享後人數瞬間衝高

單日瀏覽量分佈圖

場館篩選方面的前三名:臺北小巨蛋、國立台灣大學體育館、全部。

十大熱門搜尋場館

十大地區來源 : 台灣98.38% , 和來自世界各地的心繫台灣。

十大流量地區來源 — 以工作階段為單位

2017世大運賽程資訊網站謝幕

隨著世大運結束,我們的2017世大運賽程資訊網站也將功成身退,但還是會繼續host在github上,當成這趟旅程的紀念品。

謝謝所有幫助我陪我走完這條路的人們;
謝謝讓我過足PM癮並跟我一起跳坑的同事 Chia-Wei Li & Wendell Liu,害他們兩個也看不到世大運;
謝謝所有小幫手們的義氣相挺,
用上下班的空檔時間甚至是我在睡覺的時間補足賽程,
特別是一路更新賽程到閉幕的王草莓;
謝謝給我們意見和回報issue的朋友們;
謝謝世大運行銷小組成員林大涵先生誠懇地聯絡我們,
並將我們的網站放進鍵盤世大運,
覺得官方願意檢討改進就是未來進步的第一步。

這一趟旅程過得非常開心充實,
多認識了一些熱血工程師和專案 ,如: 2017 臺北世大運臺灣隊賽事總整理

雖然中間有個不悅的小插曲,
被另一個世大運開源專案https://ticket.mvrater.com/任意取用我們放在public repo的賽程CSV資料。

在對方網站8/23一開始出現賽程時,
我們還以無罪推論覺得是開發者自己搜集建立的,
直到我8/28我發現對方網站寫錯的賽程跟我8/27上傳的結果一模一樣,
因此寫信給對方詢問確認,
對方才承認使用並加註資料來源,
雖然有承認也加註資料來源是好的結果,
但感受還是非常不好,
希望下一個專案會更好。

由於對方來信抗議我們當時並沒有”明確拒絕他們使用”,我也的確不是對方的聯絡窗口,對方可能沒有完整接受到我的訊息,因此移除”感覺被欺騙”的用字,將此事另補於(下方後記),
我要強調的單純只有兩件事:「詢問」、「標註」。

並非放在public repo的東西就是可以任意取用,
加個引用來源,我想是個基本的尊重,
希望每位開發者,
對每位貢獻者,不論以何種形式的付出:
程式碼或是整理得來的資料內容,
皆予以尊重。

附上Nth Space世大運賽程查詢的repository : https://github.com/nthspace/universiade

日後當台灣需要我們時,大家把袖子捲起來,動動手吧。

有任何開源坑,歡迎留言推坑,
有任何意見也歡迎留言,
大家的意見和鼓勵都是我們下一個專案的動力。

後記:

由於對方來信表達,我們並沒有“非常明確表達不能任意取用“,而是回應”我們傾向第一個方案”。

以下多加入一些細節與看法。

在一開始對方私訊同事,
請求合作時非常有禮貌地詢問合作並給出兩個方案,
一是讓我們url帶三個參數讓他把使用者帶來我們頁面,
二是開放api或賽程csv,
我回覆同事「資料是小幫手建的,我不能決定,所以第二項不考慮,第一項你們要做的話可以做。」。
同事以委婉的方式回應對方「我們傾向於方案一…」。

因此在我們的認知中,第一項方案是可行性方案,第二項是不可行,我認為儘管後來第一項完成度67%,不表示第二項自動變成替代方案。
這兩個應是獨立事件。

第二項是直接交出資料不用花時間實作功能,
第一項方案是需要花時間實作的,而我們“傾向於第一項”。

對方來信提到一開始賽程是使用OCR弄出來的,
後來由於OCR要付費加上考慮賽程有持續更新的部分才使用我們的資料,
我在意的從來都不是「全部賽程」還是「需要更新的那些賽程」才有使用到,比例從來都不是重點;

老話一句:「詢問」、「加註」,如此而已。

希望此事到此為止。

--

--