跳到主要內容

喬時間網站「聚會吧(Getogether)」 介紹

因著老婆每次辦同學、朋友聚會都要協調並調查一群人最多有空的時間的需求,就做了這個「聚會吧」網站,只要有Facebook帳號的人都可以使用。主要要解決的情境就是:一群人要一起出遊或聚會,也許是同學會或一群好友出遊,但是要怎麼 選出一個最多人可以出席的日期呢?這通常是活動主辦人最傷腦筋的問題,可能的作法是: 預定一個日期,然後一個一個問。但這很麻煩,萬一預定的日期多數人沒空,又得重新調查一次。所以要事先 預定多個日期,但如果只是請大家 選一個日期,有時候結果並不是最多可以參加的日期,所以要請大家 複選多個日期最後才進行統計,而這就是「聚會吧」的主要功能:

日期與受邀人的調查表

feature-TimeTable.png
主辦人到網站上填好活動基本資料,並選好幾個候選時間、從Facebook朋友清單中選擇好友並發出通知。之後只要大家都上來「聚會吧」填寫各個日期是否可以出席,聚會吧會幫你統計每個日期的出席人數(在最下方一列),並把最多人可以出席的日期標示出來,主辦人就可以根據出席的情形決定一個適合辦活動的日期。
聚會吧」還有可搜尋的朋友選擇器,方便你快速找到你要邀請的朋友:
friendSelector-blur.png

這張表可以有兩種用法:

1.填可以出席的日期

有時候你知道大家這段期間都很忙,你可以把時間都調No,大家填可以出席的日期就好。

2.填無法出席的日期

或是大家都很閒,你問每個人何時有空,大家都說隨便阿,但是其實大家一定都有幾天是已經安排活動了,又不可能一一跟你報告,直到你定了某一天聚會,他才會告訴你:「阿!我那天有事」。這時可用消去法,請大家填無法出席的日期,然從剩下日期裡去挑選適合的時間。

特殊考量的受邀人

這張表可以一目了然每個人的出席狀況,有時候選擇日期並不是單純看人多,而是也許某些特定的人一定要出席,這時候就可以很容易找出特定的對象可以出席的日期去做決定。

中英雙語系

目前會根據你瀏覽器的設定自動切換中文或英文語系,也可自行按右上角的按鈕切換。
English-main-screenshot.png

留言

這個網誌中的熱門文章

innerHTML 的安全風險

問題 若你要實作一個使用者輸入的功能,並把輸入的內容顯示在網頁上時,應避免把使用者輸入的值直接指定給某個 element 的 innerHTML 。因為若是使用者輸入包含 HTML、JavaScript, innerHTML 就會解析並執行: var userInput = '<img src="javascript:alert("XSS")">' element . innerHTML = userInput ; 因此可能 user A 的惡意輸入,會被系統顯示到 user B 的畫面上,進而執行特定成程式碼而造成 XSS 攻擊 。 解法 一般會先想到 encode HTML,但是如果只是要顯示文字,將使用者輸入值指定給 textContent 會更簡單,無需 encode,該值會被當成純文字處理,並不會執行 javascript。 var userInput = '<img src="javascript:alert("XSS")">' element . textContent = userInput ;

XMind使用心得

使用FreeMind有好一段時間,不過畫面單調一直是我不滿意之處。 XMind在畫面上好看很多,節點形狀樣式、分支線樣式有多樣選擇,也可以匯入FreeMind的檔案。 類似Excel般,工作頁活頁的概念也很不錯,可以將多個相關的心智圖存在一起。 可以某個分支為中心來檢視的功能也很令人激賞,完全符合心智圖那種可見樹、可見林的特性。 不過使用上有幾項缺點: 1.不能設定節點的預設文字大小。 預設應該是10點字,太小了,但是「喜好設定」內沒有地方可以修改,需要每次自己加大字型,很麻煩。 2.沒有加大字型的動作可以設定快速鍵。 我喜歡不只是用顏色,還有用字型的大小來凸顯主幹、分支的差別,不能快速的增大、縮小字型很不便。

ZK 教學 - 使用 MVC 或 MVVM?

不管是現在剛開始接觸 ZK 或是用過一陣子的人都可能會遇到的問題是到底要用 MVC 或 MVVM 的方式開發。從 ZK 8 之後又把 MVVM 的能力更佳的擴展,所以 MVVM 會是一個功能更強的開發方式。但 MVC 在使用上比較直覺,仍有其優勢,所以我想決定性的因素會比較是 開發者的偏好 及 專案的特性 。你可參考下面的比較來決定哪種方式比較適合你。 優勢比較 MVVM ViewModel 較不易受畫面變動影響。 因為 ViewModel 沒有變數直接指向 ZK 元件,因此若是畫面上有元件更改,ViewModel 一般不需要修改 ViewModel 較易於在不同頁面中重用。 因為 ViewModel 只包含資料跟業務邏輯,若是不同頁面需要的資料跟業務邏輯相同,就可以重用同一個 ViewModel 例如 A 頁面按按鈕執行搜尋,B 頁面點選單執行同樣的搜尋,則可以重用同一個 ViewModel 中的 command,只是兩個頁面 data binding 寫在不同的元件上。 畫面較易於重用(易於模組化)。 透過 shadow component 跟 template 機制,可以將一段頁面的片段做成可以接受傳入參數 套用 Responsive Design 的成本較低。 通常需要針對不同裝置設計不同版面,但是顯示的資料內容大同小異,因此 ViewModel 多半可以重用 易於套用美工所設計的畫面,或是網路上現成的元件。 易於整合第三方 javascript library 或 widget。 因為 ZK 8 提供了一個可以讓你透過 javascript 去呼叫 ViewModel 中的 command (client side binding) 的方式來跟後端溝通 ViewModel 的可測試性較好。 因為 ViewModel 不需要繼承特定類別跟實作特定介面,可以輕易地執行單元測試 MVC 操控元件方式直覺好學、易懂。 MVVM 控制元件較不直接,需要了解 zk framework data binding 的行為 可以完全使用元件所提供的所有 API。 仍有極少部分 ZK 元件行為沒辦法用 MVVM 控制。例如產生 Messagebox , Listbox.renderAll() , Popup.o...