---
# System prepended metadata

title: MCU Go Open 開發部 2023 年第 1 次會議紀錄

---

# MCU Go Open 開發部 2023 年第 1 次會議紀錄

- 時間：01/05 21:33
- 地點：TG、新中途
- 出席：繁嵐、、水源、JianShan、飄飄、、餅乾

[上次會議紀錄](https://hackmd.io/KrGPOskxT1-6oaJm99aFeA)

## 討論事項
### 後端開發框架
Python
- FastAPI
    - Andy、年糕有經驗
    - 水源想學
    - 餅乾沒意見
- Django
    - 會有寫爛的風險(?
- Flask
    - 很輕、還算好寫

結論: FastAPI

### 整體架構
前端: Nuxt.js (Node.js、TypeScript)
後端: FastAPI (Python)
資料爬蟲: Python
資料儲存: MongoDB

### MVP 規劃
- Minimum Viable Product 最小可行性產品
- 對於 Go Open 來說必須具備的功能？
- 先前功能一覽
    - **課程搜尋**
        - ==關鍵字查詢（主要）==
        - 校區查詢
        - 分類篩選器（未完成）*後期 TODO *
            - 課程分類
                - 通識
                - 必修
                - 選修
            - 所屬校區
                - 台北
                - 桃園
                - 基河
                - 金門
            - 所屬系別
            - 各項指標排行
    - **課程評價**
        - ==評價==
        - ==評論（留言）==
        - ==檢視評價與評論==
        - hashtag 標記
        - 按實用度排序 *後期 TODO*
        - 上傳老師給的檔案(?) or 考古 *後期 TODO*
            - 進階解鎖
            - 成就系統
        - 顯示小課表
    - 老師開過的課程評價 *後期 TODO*
        - 課程一覽
    - 帳號系統
        - ==學校信箱登入(Google OAuth)==
        - 個人評價一覽 *後期 TODO*
            - 統計資料 
            - CRUD
    - Trello

#### MVP 定案
- **課程搜尋**
    - ==關鍵字查詢（主要）==
- **課程評價**
    - ==評價==
    - ==評論（留言）==
    - ==檢視評價與評論==
- 帳號系統
    - ==學校信箱登入(Google OAuth)==

### API Schema
* RESTful API
* HTTP method 對應
    * READ: GET
    * CREATE: POST
    * DELETE: DELETE
    * UPPATE: PATCH
* URL 的兩種類型
    1. resource
    2. function

複數或要拿到全部資料用 `all` 代表

`/api` OR `api.open-go.mcuosc.dev`
- `/course`
    - `GET` 課程一覽
    - 搜尋 `?search=XXX`
    - `GET` `/老師/課程`
- `/comment` *待討論*
    - 評論相關
    - CRUD
    - `/<UUID>`
    - `/?teacher=xxx&course=XXX`
    - `/_history` *TODO*
- `/auth`
    - `/login`
    - `/logout`
    - 登入驗證
    - JWT
    - HTTP Auth: Bearer Token
- `/ping`
    - pong

程式架構: MVC
* View: JSON


## 臨時動議


## 散會
23:30