成大選課系統
這是 2026/08/03 ,慢慢的找回我以前寫的文章,後面的原文是我在大四的時候寫的一篇熱血文章,時間快轉到現在,真的是物換星移,人類的想法再也不會被手寫程式的速度給卡住了,當時我大四熬夜數個月寫的網站,現在一兩天靠 AI 就能完成了,不過如果沒有當時的天真,我也不會成為現在有經驗的工程師了!
當時還使用 Bootstrap, Skeleton…等好久不見的前端框架/Library 。
很感謝自己當時的努力,沒有放棄寫程式。
NCKU Cource,這是一個成大的選課輔助系統,當時社群媒體剛開始發展,透過 Facebook 登入,大家可以在這個網站上針對課程評價、留言或是互相交易選課。
以下是原文
這算是從無到有,自己第一個寫的Web app,今天是上線的第三天,不知道未來這個服務會走向什麼像的結果,它都是值得紀念的。
先從背景講起,其實他是我的畢業專題,很高興系上的教授願意就這樣讓我們去實驗,做出這樣的網站來,撇開專題不說,這件事情從頭到尾,我都沒有以它只是個專題的心態在做,而其實我也是個半路出身開始寫網頁的,學校沒人教,台灣的書又少,一點一滴從Google、少數的朋友、前輩不斷的詢問出來,本來希望七月底能上線的,硬生生拖到了八月底,才讓他上線,而現在的狀況,我很開心。
如果能從上線的第一天開始用起,我想我的使用者們,會漸漸的喜歡我的網站的,第一天最基本的功能剛上線,我記得每個人都不知道怎麼用,實在糗大了,於是我花了一個多小時不斷微調,第一個功能它堪用了,當天晚上睡覺前,扣掉我拿來測試的測試帳號,達到257個用戶,第二天,總共改了30個小版本,晚上睡覺前,也達到了600多位的用戶了,今天2.0的版本發出,希望明天起床後,叫醒我的,不是鬧鐘,而是我的夢想(最近很喜歡這句話),我的夢想就是,凝聚所有的成大人。
這邊在感謝一開始就支持這個App的用戶,那我來講講這套系統的理念好了,關於選課、輔助選課的功能實在太多了,如果能幫大家寫個script去搶課,那我想這一定會在"我發佈"的那天很紅,除去我目前也沒有這樣的Background(其實我相信這不難),這其實還是不是我想要做的,我想做的,這關於我、關於你,也關於他,其實關於人,我關注於人,我們想要知道我的好朋友修什麼課,我的課有那些人修,我知道這或許會有隱私權的問題,我後面在提到,我想要知道這堂課以前修過的人的想法……等等,後面還有更多的功能我會一直以這個理念來做,凝聚人,而人們能成更多事,而如果能凝聚成大人,更能成大事。
後面記錄一些關於技術背景的事情:
首先我想先提到隱私權的問題,其實我會選擇用Facebook登入,他會是對我這個系統最好的選擇,因為如果我建立一個會員系統,光維護這個系統會讓我無法專心的去做很多事情,安全防護…..等,登入的時候我想你可以看到,我只有要求使用者基本的權限,所以如果對於隱私或是安全性有考量的人,相信我,請放心的使用,使用這個系統並不會把你的個資洩漏給詐騙集團,但亂點這個網站以外的其他連結,是有可能會的。
接著整個系統的架構,我是以Ruby on Rails為架構(Ruby 1.9.* , Rails 3.2.*),我覺得非常好上手,整體架構也算乾淨,在學習的路上不怕迷失,網路上相關的資源也很豐富。
資料庫只用了一套,是Postgres,唯一要提醒的是安裝時請小心,不然裝錯了很麻煩!
網頁的樣式,由於是一個人開法,所以我採用的是@Twitter所提供的Twitter Bootstrap,這絕對會節省非常多你開發的時間,敏捷開發必備,網路上也有許多類似的套件,如Skelton也是不錯的框架。
而使用Ruby on Rails我有用了幾套Gem
- pd : 前面提到了,這是資料庫
- omniauth-facebook:負責Facebook Login
- koala :負責做Facebook的資料的存取
- simple_form : 這可以參考我前面這篇,為解決方案
- thin : 這我比較不熟,Heroku推薦,Godfat也提到過。
我不自己架設Sever,我使用的是Heroku,他們也是架在著名的AWS上面。
而整個開發過程,除了問人,我最常去的是這幾個網站,而我整篇網誌很多網站,我幾乎把網址都背下來了,打的比Google快:
- Google : 這我想每個人都是吧….
- Stackoverflow :簡言之,宅男版知識加社群
雖然我是一個人開發,但我所有的Code也有做版本控制,我是用的是Github,我的整個專案的程式碼,我也放在上面,是Public的,我之後有空會做Documents,讓整個系統可以更多人貢獻。
最後,在成大的最後一年,雖然還尚未開始,但希望我能用我最大的力氣,貢獻給成大!各位成大人,共勉之!
Rock