--- tags: 110-1 --- # 110-1 選課網站 ### 下學期預選時程 * 開始時間: 11月初 * 期限:12月13號封測(後端跟演算法一定要好) * 12月27~29開始預選 ### 相關連結 [110-1 預選網站檢討文件](https://docs.google.com/document/d/1Dtg02a07t2bNg8fwKPZEcvn4zul6aDdcaZDqOpZCwRA/edit) [預選網站檢查SOP](https://ntueesaad.notion.site/COLLAB-f3d3a0ffd8494e8e98241b2101c128e7) ## 2021/12/11 - [x] priority_value of guarantee has to be number (e?) - [x] 特定年級要load原本的資料 - [ ] **login session problem** - [ ] option color faded - [ ] alert students not found must be longer? ## 2021/12/3 ### small bug - [x] (威侑) **login button can't click for sometime** * 用useHistory, history.push("/"), 參考下面 - [x] (Justin Huang) **Options showing undefined (if priority_type = "" => show "無")** - [x] **priority_value of guarantee has to be number** - [x] (陳駿瑋)**courses description required** * 可以去api.js判斷data.description是否為null, 然後改成空字串 - [x] (Connor Chen)delayed remain time - [x] (Connor Chen) students 擋人的403要回到/ or /courses - [x] (威侑) maintainer 不可以進去 distribute ### todo - [x] (張創渝 & 黃宥翔)**預選 upload csv (refer to add student)** - [x] (張創渝 & 黃宥翔)**add space in courses manage for enter students (also by upload csv)** * **上面兩個可以做一個小視窗(rollable),裡面列出student_id from top to down,右下有個按鈕upload csv** * 前後端都要確定id is in students, if not inside, pop error message - [x] (Justin Huang) **add course 時 default selected options limit must be 1(trivial), number must larger than 0** - [ ] result ui color and 排版...(可以截圖問ui大師) - [x] (張創渝)直接列出所有年級的課程(類型由上往下,課程由左往右)(course那邊不要用tab)**類型呢...?** - [ ] (梁正)選課及演算法說明寬度變大。**寬度而已...** * login 按鈕可以參考`src/container/drawer/index.js` ``` useHistory import { Link, useHistory } from "react-router-dom"; const history = useHistory(); <div style={{ cursor: "pointer" }} onClick={() => history.push("/login")} aria-hidden="true" > LOGIN </div> ``` ## 2021/11/26 * options 可以修改(陳駿瑋) * 接後端(Justin Huang) * 選課及演算法說明版面寬度可以更大 | 多一個明顯的登入視窗(若沒登入)! | 主頁上面加一個按鈕或其他形式超連結到Course (梁正) * 加以儲存按鈕+判斷 (Monica Huang) * 直接列出所有年級的課程(類型由上往下,課程由左往右)(course那邊不要用tab)(張創渝) * deal with distribute (Ray Huang) * 可以增加一個result的頁面(放到 homepage):查看所有已預選的課程(陳亮瑜) * 沒選上該課的人前端屏蔽課程(陳亮瑜) ### auto logout problem (in backend?) ![](https://i.imgur.com/tLAXFpJ.png) ## 這次要做的(到2021-fall branch) 選項: 必修(由大到小),某幾個年級優先,大三保障 xx,大四保障xx,全部平等 ``` // 必修(null),某幾個年級優先(array),大三保障 xx(number),大四保障xx(number),全部平等(none) priority_type: String priority_value: various type courseSchema({ id: name: type: description: students: 前端屏蔽用 number: 可選上人數 options:[ { name: limit: priority_type: "higher-grade-first", "grades", "guarantee-third-grade", "guarantee-fourth-grade", "none", "preselect" priority_value: 0, [Number], Number, Number, 0, [String] } ] }) ``` 後端: * 十選二條件(大三大四優先、大三保障xx名、大四保障xx名)需正式加入系統中 * statistics.csv 可加上 選上 “選項 vs 志願序” 的表格 * (第二次)選項可在前端隱蔽(不清除分發結果,直接去 db 撈) * **DONE** 選課期間定期自動備份 一小時一次 可以保留前幾個小時 前端: * options 可以修改(陳駿瑋) * 可以增加一個result的頁面(放到 homepage):查看所有已預選的課程, 加一個 status 顯示已儲存 * 使用說明:步驟分開, 滑鼠點擊特效 * 選課及演算法說明版面寬度可以更大 () * 直接列出所有年級的課程(類型由上往下,課程由左往右)(course那邊不要用tab) * 多一個明顯的登入視窗(若沒登入)! * 主頁上面加一個按鈕或其他形式超連結到Course 有解決方法: * (第二次)選時段屬於十選二實驗,但僅能上一個志願!(”上兩個”可當新的屬性): 新增一個Course Type / 多一個Course的欄位 ### 資訊部改良事項(待更新) #### 後端 1. 演算法 * 十選二條件(大三大四優先、大三保障xx名、大四保障xx名)需正式加入系統中 * 選項可在前端隱蔽 * 網站無法匯出、匯入課程資料 * preSelect 應加上注明的 “選項“(不只數電實驗可用)且不應在後端特判 2. api * statistics.csv 可加上 選上 “選項 vs 志願序” 的表格 * 一鍵匯出課程資訊 3. database * 半導體和電磁波實驗時段選項不應出現在名單以外的人: 用戶特定族群 * 選時段屬於十選二實驗,但僅能上一個志願!(”上兩個”可當新的屬性): 新增一個Course Type / 多一個Course的欄位 * mongoDB 設定帳號密碼 或 牽至 atlas * 選課期間定期自動備份 一小時一次 可以保留前幾個小時 #### 前端介面 1. 功能 * 一鍵匯出課程資訊 * 半導體和電磁波實驗時段選項不應出現在名單以外的人: 前端屏蔽 * 新增course時可以同時把一階實驗預選名單輸入進去 * Introduction 的 MarkDown,有時 render 會崩潰,插入圖片只能用HTML格式, 編輯器語法跟 render 語法不一樣 (換編輯器/renderer ?) * 封測的時候要檢查 對時的問題 * options可以修改 2. UI * 時間旁邊多一個登入視窗(若沒登入)! * 直接列出所有年級的課程(類型由上往下,課程由左往右) * 選課及演算法說明版面寬度可以更大, 更直覺的翻頁方式, 可從前端 Markdown 編輯 * 主頁上面加一個按鈕或其他形式超連結到Course * 使用說明:步驟分開, 滑鼠點擊特效 * login: 打錯密碼連學號不見, * 可以增加一個result的頁面:查看所有已預選的課程, 加一個 status 顯示已儲存 * ~~加上一個drag indicator (六個點點)~~ 加一個類似 placeholder 在背景提示可以拖 3. Mobile(較不優先) * 手機版選課的地方可改為上下, 在前面選課列表可能也要有所調整 4. 新頁面 * 查詢系統結合 ![](https://i.imgur.com/x69X2UF.png)