---
# System prepended metadata

title: User Story-Meeting Center

---

# 報告流程(10-15min)+(5min QA)
##### Kevin講師建議:報告必須要有故事性，用User Story點出問題點以及我們需要什麼樣的需求(pronblem)，之後才介紹我們怎麼解決，我們設計什麼架構和功能去滿足他們的需求(solution)，展示我們有做什麼功能和我們的monitor。
#### 目前預計:
1. 介紹組員及主題-**Meeting Center**
2. 介紹四個User Story(4 min)
3. 軟體(utility須補足)和系統架構(1 min)
4. Demo的重點在前面2個一般使用者會用到的功能和最後一個ADMIN的功能(6.5min)
>User1端: 
>>**篩選:** 登錄->篩選人數->篩選看有無器材->篩選會議時間->其他篩選功能
>>**預約:** 拖動時間軸預約->可以新增大綱文件等等->可拖動時間軸更改時間->展示個人的會議行事曆
>>**確認:** 快到預約時間與結束會收到通知->結束可撰寫會議結報
>>
>User2端:
>>**確認:** 登錄->收到會議通知->可看到User1預約的會議資訊->無法預約相同時間
>>
>Admin端:
>>**篩選:** 登錄->收到客戶問題->使用篩選器來找出要維護的會議室
>>**維護:** 點選會議室->進行刪減會議室備註->增減會議室
>>**功能:** 把其他User升成Admin
>>  
>User1端:
>>**維護後確認:** 有收到系統通知會議室的變更->有收到其他推薦的同時間會議室
>>
>User2端:
>>**維護後確認:** 有收到系統通知會議室的變更
>>
>>Guest:可以看到目前所有的會議資訊但不能做更改 

5. test (10s)
6. monitor metrics(2 min)
7. The Twelve Factors(1 min)
8. QA time(5 min)


# User Story-Meeting Center

## 1.需要約會議的菜鳥工程師
**EPIC:** 身為一位需要約會議的菜鳥工程師，我需要一個平台使我能夠順利地安排、準備和跟進會議相關的所有活動。

**User Story:**  作為一位菜鳥工程師，我需要一個完整的會議管理系統，可以瀏覽並預約會議室、存取會議相關文件，並在會議結束後輕鬆撰寫和分享會議記錄。

**Task:**
* 瀏覽和預約可用的會議室
* 在會議開始前檢視會議文件和資料
* 會議結束後，撰寫會議記錄或後續行動項目 


### STEP:
1. 以公司職員的身份**註冊**網站帳號並**登入**
2. 在預約頁面中**挑選會議室並預約**
3. 會前可**撰寫會議大綱、標題**及**上傳會議文件**或資料(或下載其他與會人上傳的會議資料)
4. 會議結束後可**點選會議撰寫會議結報**


## 2.需要預約與客戶開會的主管
**EPIC:**   身為一位需要預約與客戶開會的主管，我想要高效率地安排與客戶的會議，提供優質的會議體驗，為公司爭取最佳商機。

**User Story:**   身為一位需要預約與客戶開會的主管，我希望能夠根據會議室的詳細設備資訊、閒置狀態，以及我所參與的會議時間，快速找到最合適的會議室進行預約，為客戶提供優質會議體驗。

**Task:**

* 篩選會議室設備與環境資訊
* 即時呈現會議室閒置狀態
* 查看已參與會議，避免衝突


### STEP:
1. 以行政人員的身份**註冊**網站帳號並**登入**
2. 在預約頁面篩選符合客戶需求設備的會議室
3. 在個人頁面查看已參與的會議，確認時間並無衝突
4. **拖動時間軸**來完成預約
7. 會議**開始前一小時**會提醒老闆等會有這場會議 (進階要求)??
8. 會議**結束前十分鐘**會提醒即將結束 (進階要求)??
9. 如果客戶待得比較晚且後面的時間沒人預約，可以把**該會議的結束時間往後延** (進階要求)


## 3.需要進行維護及增減會議室功能的管理員
**EPIC:**   身為維護管理會議室的行政人員，我想要能夠高效率地維護會議室資訊，確保系統資料的準確性和可靠性，為使用者提供最新且正確的會議室資訊服務。

**User Story:**   作為會議室管理人員，我希望能透過友善的介面管理並即時更新會議室的資訊與狀態，並擁有權限控管使用者，以及刪改和編輯所有已排定會議的安排。

**Task:**
* 有管理介面可管理(增刪、修改)會議室資訊並即時更新
* 擁有權限可控管使用者資訊與權限
* 擁有權限可刪改和編輯所有的會議

### STEP:
1. 以**Admin**角色註冊網站帳號並登入
2. 進入admin頁面可刪改、新增會議室本身及相關資訊
3. 可編輯使用者名稱及其權限
4. 亦可利用搜尋欄搜尋使用者信箱及會議室名稱
5. 進入預約頁面可刪改、編輯所有會議資訊


------------------------------------------
# 講稿(備份用，主要在PPT)
### 1
大家好我們是第三組，我們的組員有紀軒宇,林煦,陳沛圻,施育衡,詹恆瑜
我們今天要介紹的主題是Meeting Center

---
### 2
這是我們接下來要報告的目錄，
我們會依照這個順序進行報告，
首先會介紹User Story了解我們的user的問題，
並透過我們工程師給他的步驟建議來解決它的問題，
接著會demo我們的擁有的功能給各位看，
再來展示我們的測試成果和monitor metrics，
最後就是分析我們擁有的the twelve factors

---
### 3
使用者一為需要約會議的菜鳥工程師，
它的情境為身為一位需要約會議的菜鳥工程師，
我需要一個平台使我能夠順利地安排、準備和跟進會議相關的所有活動
他會瀏覽和預約可用的會議室,在會議開始前檢視會議文件和資料,會議結束後，撰寫會議記錄或後續行動項目 

以下是我們工程師給他的建議:
1. 以公司職員的身份**註冊**網站帳號並**登入**
2. 在預約頁面中**挑選會議室並預約**
3. 會前可**撰寫會議大綱、標題**及**上傳會議文件**或資料(或下載其他與會人上傳的會議資料)
4. 會議結束後可**點選會議撰寫會議結報**

---
### 4
使用者二為需要預約與客戶開會的主管
它的情境為身為身為一位需要預約與客戶開會的主管，
想要高效率地安排與客戶的會議，提供優質的會議體驗，為公司爭取最佳商機。
他會篩選會議室設備與環境資訊,即時呈現會議室閒置狀態,查看已參與會議，避免衝突

以下是我們工程師給他的建議:
1. 以主管的身份**註冊**網站帳號並**登入**
2. 在預約頁面篩選符合客戶需求設備的會議室
3. 在個人頁面查看已參與的會議，確認時間並無衝突
4. **拖動時間軸**來完成預約
5. 會議**開始前一小時**會提醒等等會有這場會議 (進階要求)??
6. 會議**結束前十分鐘**會提醒即將結束 (進階要求)??
7. 如果客戶待得比較晚且後面的時間沒人預約，可以把**該會議的結束時間往後延** (進階要求)

---
### 5
刪掉嚕
---
### 6
使用者三為需要進行維護及增減會議室功能的管理員
它的情境為作為會議室管理人員，
希望能透過友善的介面管理並即時更新會議室的資訊與狀態，並擁有權限控管使用者，以及刪改和編輯所有已排定會議的安排。

工程師給他的建議:
1. 以Admin角色註冊網站帳號
2. 可以收到一般使用者回饋的會議室問題(進階)
3. 點選登錄後利用篩選器找出有問題須維護的會議室
4. 點選該會議可以增減該會議室的設備
5. 如果會議室臨時無法使用，就把該會議室給關閉
6. 維護完成後，寄發通知給先前預約該會議室的所有參與人
7. 如果臨時取消原先的會議室，就會推薦同時間的其他會議室給預約者（進階）
8. 確保使用者都會收到最新的會議室資訊

---
### 7
#### software design

---
### 8
#### system design

---
### 9
#### Demo

User1:
1. Register / Log in
2. Profile -> Reservation : search + 預約(+user2+linsapphire) + email + upload
3. 拖曳刪除 + 警示 + 結報
4. 切換week/month
5. profile

User2:
1. profile(剛預約的會議+檔案可下載)

Admin(User3):
1. 使用者: 改權限、搜尋
2. tag、會議室(連動): 新增、搜尋、編輯、刪除
3. 預約頁面: 可刪除會議

Guest:
1. 預約頁面

我們會模擬剛剛3個User會使用到的功能，
以及介紹我們多新增的功能，
首先模擬我們是User1並註冊帳號，
我們這邊的帳密和姓名都有被嚴格規定，
包括姓名和密碼等等都有被輸入格式，
進入後開始預約會議，左方是會議室列表，我們可以利用人數、會議室標籤和時間篩選所要的會議室，
確定後用拖移的方式來預約會議時間，
我們可以新輸入我們的會議資訊、參與人(已註冊帳號的User2)進來，並附加檔案，
若預約完成後欲更改時間，也可以直接拖曳整個event進行更動，以增加機動性，也可以刪除會議(有權限)。
預約成功後我們會可以在自己專屬的會議行事曆中看到未來即將參加的會議，左邊是會議資訊卡，右邊是會議行事曆，點擊皆可看到會議資訊，亦可切換week/month介面。
~~當我們比較特別的地方是新增了可以在會議開始前臨時提早開始的功能，~~
也能在開始開會到一半延長我們的開會時間
會議結束時，能夠點選會議敘述以撰寫會議結報(只有權限者可以撰寫，與會者皆可觀看)。

接著我們模擬已註冊過帳號的User2的操作，
首先進行登入，
登入後在Profile頁面可以看到行事曆上有剛剛預約的會議行程，
這是由於剛剛User1有把User2加入到我們的會議室，
點入會議卡或會議時段可以看到剛剛預約的會議資訊，
在reservation頁面，由於user2不是主辦人，因此無法刪除更改預約資訊，會出現警示，同時他也無法刪除User1放的會議PDF檔案
同時如有非法行為則會出現警示，如預約錯誤(過去)的時間(過去)的會議、刪除或更動他人申請的會議。

由於使用者、會議室皆有管理的需求，如會議室器材壞掉，或甚至整間無法使用，管理者需有介面可進行管理修改。
**(DEMO User3為admin)**
因此我們新增了一個admin後台頁面，如使用者權限為admin，即可進到此頁面，進行會議室及備註的新增、更動以及刪除，並且能更改使用者的名稱與權限。
另外，在預約頁面中，admin也有權限可更動或刪除所有會議。


另外，若使用者未註冊帳號，點選首頁右邊的Guest選項，
可以看目前有預約的會議室時間以及內部細節，
當然它是無法對裡面內容進行修改的。

**(mail??)**


User1: 註冊/登入+Reservation+Profile
User2: 資料庫及預約的會議已存在，登入+Profile+Reservation
User3(Admin): Monitor+Reservation
Guest: Reservation


### 10
#### Test
這是我們的系統Test的結果，
我們可以看到我們後端的覆蓋率達到xx%

---
### 11
#### Monitor metrics
在監控部分，我們有簡單對後端、資料庫及部屬的機器本身做監控，後段部分監控各類 api 的呼叫次數，資料庫部分監控 uptime QPS 等，機器部分則是監測 cpu, memory, io 等數值

---

### 12
#### The Twelve Factor

>這邊我們會介紹我們實作的twelve factor
>12 factor 的部分
>
---

### 13
#### QAs
