---
# System prepended metadata

title: 預選系統維護
tags: [' task', ' 109-2', 109-1]

---

---
tags: 109-1, 109-2, task
---

# 預選系統維護

## Code

* [預選系統網站](https://github.com/NTUEEInfoDep/NTUEECourseWebsite2020)
* [預選系統分發演算法](https://github.com/NTUEEInfoDep/NTUEECourseDistribute2020)

## Todo

* 前端 -> create react app, redux toolkit
* 修掉前端每次資料庫更新都需要重 build 的 bug
* 考慮用工具自動生成 api documentation (swagger)
* 考慮用 redux toolkit 改寫前端 redux
* code 大整理，有些實在很醜
* admin page 製作（後端 CLI 用 function 重新封裝，error handling + type checking，CLI 提供直接修改 admin 密碼，密碼一律 hash，plain text password 只能下載一次即刻銷毀）
    * 過往課程資料存 DB
    * 提供 import/export json/csv 功能
* 寫 testing
* 把分發演算法用 python server 包起來，讓 js server proxy 他
* 加上 contributor list，紀錄大家的貢獻，這樣可能比較爽。<font color=red>預選系統算是我們今年這屆資訊部的產物，改革了之前的許多問題，希望可以把它弄得更好，大家加油！</font>

## Todo（Old）

* 統一化Website和Distribute中`courses.json`的格式，並寫一個程式去做input data validation
  * 存進db前學號一律轉大寫
  * 檢查有沒有重複的學號
  * 各種type checking
* 讓預選網站可以不用重build，只要update db即可運作
* 砍掉舊課程網
* Project之一可以是幫預選系統網站加上admin page
* 預選演算法改善
    * Reference: http://ip194097.ntcu.edu.tw/ungian/Chokphin/Hoagu/hunhoat/hunhoat.htm?fbclid=IwAR1MgTI26FQ0ERTFMKbMkHKS7P3ZCly7JMj73ugNm18OIagr-LyXbJmF12o


## Spec
成員: 
Jasperora
Mecoli1219
張創渝 (BlessingsOfGabriel)
黃宥翔 JustinHuang1111
蔡仲廷 (tim901231)
楊宗賢 (yth98)
陳亮瑜 (connor226)

### Frontend 
PM: 朱哲廣 (Kenchu123)
成員:
陳威侑 (Jasperora)
黃筱穎(monica0325)
楊新慧(sheep706)
楊宗賢 (yth98)
游耿睿 (ray0426)
楊博宇(KevinYang71)
陳駿瑋(caffrey928)
陳冠霖（Glen-Chen-Blue）
- Main Page
    - 登陸功能
    - 使用教學
- Course Page
    - 看所有當前的課 (跟後端要課程表)
    - 排得美美的
    - 點進去可以到 course select page
- Course Select Page
    - 可以排課程的順序
    - 存檔 (跟後端說要存檔)
- Admin Page
    - 可以登錄
    - 上傳學生資料
    - 上傳課程資料
    - 設定選課開始與結束時間
    - 跑分發，得結果

要看的東西:
react
react-redux-toolkit
我上次的 todolist 應該都涵蓋的差不多了
react-router: https://reactrouter.com/web/guides/quick-start

舊 github: https://github.com/NTUEEInfoDep/NTUEECourseWebsite2020

### Backend
PM: 劉奇聖 (MortalHappiness)
成員:

陳亮瑜 (connor226)
蔡仲廷 (tim901231)
黃宥翔 JustinHuang1111
賴群貿 Mecoli1219
張創渝 (BlessingsOfGabriel)
鄧旭辰 (b09901017)

- login
    - post: 新增學生
    - post: 登陸
- course
    - get: 拿課程資料
    - get by id
- student
    - get: students
        - 拿選的課
        - 拿密碼
    - post: students.csv
        - 定好格式，教學術部的
- distribution
    - post: 跑分發，拿結果

