【Cloud Foundry 應用開發大賽】屌絲錄(DSL)問卷調查系統

#屌絲錄(DSL)問卷調查系統 應用URL: http://jove-survey.cloudfoundry.comgit

2個測試連接:github

填問卷數據庫

最終用戶截圖

管理員參看各個問卷反饋狀況bootstrap

問卷列表

管理員參看某問卷全部反饋app

反饋詳情

#應用說明及使用場景測試

咱們須要投票系統

咱們常常須要收集別人反饋, 以下次訂哪一個餐館一塊兒吃飯,或你願意選誰做人大表明。.net

目前幾種常見方案的硬傷

一種辦法是直接當面問,或打電話或發email問。可是信息會收集的至關瑣碎。若是你要對二千人做問卷,一個個打電話或是整理郵件回覆會累死。另外有人或許更願意匿名參與。設計

Outlook 2007後加入了投票功能。收信人只要點按鈕就能夠發表觀點。但這個方案有一些問題:code

  • 不能匿名投票
  • 只支持一個選擇題,不能問多個問題或開放問題
  • 只支持Windows版的Outlook。Mac和WebAccess上的Outlook沒有投票按鈕

還有種作法就是使用在線系統,比較流行的是SurveyMoney。它可讓你在線編輯問卷,能夠是選擇題也能夠是開放問題,參與者能夠選擇匿名參與。它還有不錯的信息整理功能。 可是SurveyMoney的商業模式是限制免費版的功能。若是你不付費,只能讓最多100人蔘與一個問卷,或你只能最多建立10個問卷內存

##基於CF的問卷系統 既然http://cloudFoundry.com提供了免費的2G內存,免費的主流數據庫,和免費CPU資源, 爲何咱們不能夠本身搭建問卷調查系統呢?

基於這個想法,我寫了這個應用。暫定名字爲「屌絲錄「,拼音縮寫爲DSL。一方面這個系統比較面向極客(Geek)和屌絲,更重要的是它使用了DSL(Domain Specific Language)技術。

代碼自己是開源的,我放在https://github.com/jove/surveyApp

熟悉Java或Grails的開發者能夠修改代碼,可是若是你只是修改一些頁面文字,則只須要改幾個配置文件。

考慮到問卷的設計比較頻率比較低,因此沒有作網頁版設計。用戶能夠編寫一個簡單的DSL文件,很是簡練的添加問題。

部署時只要把這個應用push到cf,而後以admin密碼登陸,讓系統加載特定問卷,就能夠生成URL讓他人匿名參與。 最後,部署者能夠在管理頁面看到各個問卷的參與次數,並在一個頁面看到對某一調查的全部反饋。

#應用所使用的技術及軟件 此係統主體用Grails編寫,數據庫中立,已測試過MySQL和PostgreSQL。

問卷DSL使用的是fixtures plugin。如下爲一個簡單問卷的DSL

import exp.*
fixture {
	q1(Question,text:'What is your gender?',options:['Male', 'Female'],defaultValue:'Male')
	q2(Question,text:'What is your name?',type:'short', defaultValue:'anonymous')
	q3(Question,text:'What is your comment?',options:[], defaultValue:'N/A')
	survey1(Survey,name:'A Very Simple Survey',questions:[q1,q2,q3])
}

UI用的是twitter-bootstrap plugin。

測試用的是Spock plugin, BDD (Behavior Driven Development)

#創新點(亮點)

主要亮點是DSL+Bootstrap+BDD+Grails+CloudFoundry+GitHub

  • 用DSL高效設計問卷
  • 用Bootstrap改善界面
  • 用BDD作集成測試
  • 用Grails作快速開放
  • 用CloudFoundry DIY部署雲問卷系統,任意人數參與投票,不限問卷個數
  • 用GitHub開放源碼,共同改進,回饋社區

設計簡約,界面大氣,富有極客和屌絲精神 :)

喜歡就給我投票

相關文章
相關標籤/搜索