---
# System prepended metadata

title: 功能需求文件

---

功能需求實作文件
===
:::info
參考格式: 
- https://g0v.hackmd.io/@ddio-io/HkrbOr033
- https://mason1762.gitbook.io/samxinbakery/xu-qiu-ge/gong-neng-xu-qiu
- https://hackmd.io/@XiaoRong/HkRtKJc4t
:::
## 設計方向、脈絡、情境、資訊架構
- 使用者故事請見 [UX 文件](https://hackmd.io/wcH4I-RYRQWX5uWINkIMEA?view)
- 資訊架構也同樣請見 [UX 文件](https://hackmd.io/wcH4I-RYRQWX5uWINkIMEA?view)
## 基本資訊
### 使用者身分種類
1. 老師
2. 學生
3. 管理員
4. ~~訪客~~
## 0. 任務架構
- 規則: 這個任務的目的、做到的方法
- 實例: 任務的實際案例，如果覺得規則解釋性不夠可以新增
- 資料欄位: 用到的資料庫欄位(`資料表-資料欄`)

Reference: [資料庫欄位](/y0EfbNouSO2nXdjjxURXwg)
## 1. 前台功能
### 首頁

## 2. 使用者功能
### 使用者註冊

### 使用者登入
:::info
實作難度: ⭐
:::
- 規則
    - 使用者在**未登入**的時候可以可以輸入帳號密碼後點擊「登入」按鈕登入系統
    - 如果帳號密碼正確，則從 DB 取得資料後，儲存於 session 中，並且跳回到首頁
- 實例
    - 在登入畫面輸入:
        - 帳號: neokent@gapps.ntnu.edu.tw
        - 密碼: 12345678
### 使用者資料修改
:::info
實作難度: ⭐
:::
- 規則
    - 使用者在**登入**的狀態下，可以進入到*會員中心*更改自己的資料，包含: 更改基本資料、變更密碼
    - 基本資料分為可修改和不可修改
        - 不可修改: 姓名(如果改名的話需要找教師或是管理員，避免學生濫用)
        - 可修改: 其他部分
    - 重設密碼含有舊密碼和新密碼以及重複輸入新密碼欄位

### 使用者忘記密碼
:::info
實作難度: ⭐
:::
- 規則
    - 當使用者在**未登入**狀態下點擊「忘記密碼後」，網站會要求使用者輸入其在系統上登記的 E-mail，當輸入的 E-mail 存在後，系統會寄送重設密碼的信件給使用者，而使用者點擊後會被要求輸入新密碼和重新輸入新密碼
        - E-mail 中連結的參數應為隨機產生

## 其他

