ETH官方钱包

前往
大廳
主題

【程式作品】嘉義大學選課輔助器

魔化鬼鬼 | 2021-12-18 15:08:29 | 巴幣 6320 | 人氣 2176

  • 前言
        原本嘉義大學選課只有給你一大串的課程,課程類型要一直回上一個來修改,課程上面有所有需要知道的內(nèi)容,雖然內(nèi)容十分充足,但是十分的不方便,衝堂的課也要自己看,旁邊也沒有預覽課表。


        在坐火車往返嘉義高雄的期間,斷斷續(xù)續(xù)看了一些 React.js 框架的影片教學後(Tech with Tim),我嘗試做出了一個簡單的 todo-list,認識了 React 中 state tree 的概念,便覺得原來 js 在有了框架中是這麼的強大,原來前端沒有我想得這麼麻煩,程式碼相比於 Jquery 乾淨太多了。在腦袋中思考一下整體 state tree 後就開始製作這個專案了。

  • 介紹
        相比於原本的選課系統(tǒng),這個網(wǎng)頁提供了以下輔助
    • 衝堂課程鎖定
    • 課表圖表化預覽
    • 更簡潔現(xiàn)代的風格
    • 更方便的搜尋和篩選
    • 畫面的動態(tài)更新
    • 計算已選課程的學分數(shù)



  • 後端
        後端我是將之前開發(fā)「嘉義大學課表產(chǎn)生器」的 API 新增一個端口的,依然是 python flask restful。

        不得不說,全校課程查詢這一塊我觀察了很久,因為這個選單只有給四個大方向搜尋「依關(guān)鍵字查詢」「依類別查詢」「依校區(qū)節(jié)次查詢」「依系所查詢」,首先依關(guān)鍵字和依系所就先排除,因為一個不知道關(guān)鍵字,一個抓不到?jīng)]有系所的(軍訓之類的)。接著依類別雖然有幾乎所有的課程,但是每個分類點進去的 form 又不太一樣,這會導致撰寫爬蟲很麻煩。

        最後是選擇了依校區(qū)節(jié)次查詢,缺點是每更新一次資料就要花費 3~5 分鐘,因為要送出「節(jié)數(shù) * 星期 * 校區(qū)」個 requests,且學校的輸出的結(jié)果頁面還要等他渲染個一兩秒,然後我又不想給學校造成太大的負擔,所以沒有選擇 multithread,不過由於是 3~5 分鐘我覺得是可以接受的,畢竟也沒有需要很常更新。未來可能會用個 github action 來定時更新資料。

  • 前端
        這次前端我是使用 React.js 框架來完成的,之所以想學 react 因為看到外國前端設(shè)計師影片看他們很常使用 react,所以我就想說也來玩看看,也算是大概接觸一下前端三本柱之一看看。

        我覺得 React 的好處是畫面的更新是 based on 元件內(nèi)的狀態(tài),只要一修改了那個狀態(tài),有關(guān)那個狀態(tài)的元件都會被重新渲染,而且 react 內(nèi)部的 diff 演算法也會去偵測哪些頁面內(nèi)容沒修改,省去不必要的重新渲染。

        CSS 的部分就是使用 bootstrap 以及「嘉義大學課表產(chǎn)生器」的部分 CSS。Icon 一樣是我自己用小畫家隨便畫的 XD

創(chuàng)作回應(yīng)

貓三
https://truth.bahamut.com.tw/s01/202302/2fb754b1dec92813551eb320271614f1.JPG
2023-02-13 00:28:34
魔化鬼鬼
oh no API掛了
2023-02-13 01:47:40
魔化鬼鬼
謝謝你的回報 現(xiàn)在應(yīng)該好了
2023-02-13 01:57:14
貓三
好了一次之後又壞了
2023-02-13 02:12:58
魔化鬼鬼
我在調(diào)整一些東西 剛剛又玩壞了 :P
2023-02-13 02:14:15
魔化鬼鬼
你再試一下下 謝謝[e6]
2023-02-13 02:15:33
魔化鬼鬼
好吧 又壞了[e3]
2023-02-13 02:16:33
魔化鬼鬼
好了 如果有再壞 可能需要你回報一下你的操作 好讓我重現(xiàn)@@
2023-02-13 02:32:45
登高望遠
有課程的教室跟大綱的教室不一樣 有辦法處理嗎
2024-02-21 23:48:32
魔化鬼鬼
這個可能沒辦法,因為我資料統(tǒng)一都是是從 https://web085003.adm.ncyu.edu.tw/pub_depta1.aspx 這裡爬的,跟大綱不同應(yīng)該是開課老師和學校方的問題
2024-02-22 00:43:06
魔化鬼鬼
如果真的要處理的話每次都有2300個課程,我怕請求太多被學校ban之類的
2024-02-22 00:46:52

相關(guān)創(chuàng)作

更多創(chuàng)作