- 使用者可以在這個頁面輸入(切換)使用者名稱,任何活動的留言都以此名稱顯示
- 使用者可以在這個頁面總覽所有活動。每一項活動至少要能看到其活動名稱、自己是否參加(打勾符號)、目前有幾人參加三項資訊。

- 點擊活動時,進入該活動之 「瀏覽活動」頁面。
- 點擊「新增」按鈕時,打開 「新增活動」功能。
- 「搜尋想參加的活動」欄位:使用者可以在這個欄位對活動名稱進行關鍵字搜尋。若活動名稱中包含該關鍵字,則應顯示於搜尋結果,反之則不應顯示。
例如:搜尋「猴子」關鍵字,可能跳出「山道猴子的台七乙」、「到中山大學找猴子老師」等等活動。相對地,不應找到「從台灣獼猴手中保護我們的孩子」、「總圖 Free Hug」等等不包含「猴子」關鍵字的活動。

- 提供使用者新增活動。請實作為懸浮於主頁面上方的 modal。

- 新增活動時,使用者須填入活動名稱、開始日期時間、結束日期時間三項資訊。點擊「新增」按鈕時,若滿足下列四項條件,則新增該活動,並導引使用者前往該活動之「瀏覽活動」頁面。
- 成功新增活動後,須導引使用者至 「瀏覽活動」頁面,並且自動將使用者自身加入活動 。

- 承上,如果不滿足全部四項條件,則不允許使用者新增活動,並提示使用者須滿足的條件。提示方法不拘,使用 alert、toast、或是顯示於輸入框上方等等皆可。顯示提示後,使用者可以繼續修改活動資訊。
- 如果未點擊「新增」而是點擊 modal 外的區域,則取消新增活動。
- 使用者可以在這個頁面瀏覽個別活動之開始日期時間、結束日期時間、留言
- 點擊左上角「返回」按鈕(圖中以 ❮ 符號表示),可以返回主頁面
- 每一則留言須包含使用者名稱與留言內容。留言長度若長於一行能顯示的字數,則需自動換行(line wrapping)以顯示完整留言。
- 留言區的留言應依照存入資料庫時間,從最舊到最新由上至下排列
- 在留言區應該有一個留言輸入框,依照使用者是否參加活動而有不同行為:
- 參加活動:在未參加活動的情況下,使用者可以點擊「我想參加」按鈕。按下按鈕後,按鈕應改為顯示「我已參加」,並改變顏色。此時用戶便可以使用留言功能。
- 留言輸入框應改為提示使用者可以輸入留言,當使用者 focused 在留言輸入框時,按下 enter 鍵即可發送訊息。
- 自己的訊息發送後,應即時更新至畫面上,不需使用者重新整理。
- 來自其他用戶的訊息發送後,不須立即顯示,重新整理後按照留言順序出現即可。
- 退出活動:在已參加活動的情況下,使用者可以按下「我已參加」按鈕來退出活動。按下按鈕後,按鈕應改為顯示「我想參加」。不需刪除使用者已留下的留言,但是留言框必須返回無法使用的狀態。
- 未參加時顯示唯讀畫面如下圖(a),詳細規定如下
- 每日需有 24 個時間格,意即每格 1 小時,每小時為一列;亦可用半格的方式表示,見下圖(b) (c)。
- 活動期間每一日需顯示為一欄。如基本要求所述,最多支援到七天(七欄)即可。
- 不屬於時間範圍內的格子需要標成灰色。例如若時間區間為 2023/10/16 08 ~ 2023/10/20 22,則需把下圖內五格標成灰色
- 將沒有人有空的格子標成白色,並依照有空的人數漸層,顏色由淺至深代表有空人數由少至多,最多支援到 6 人即可
- 最下方顯示每個顏色代表的人數
- 在已參加活動的情況下才可以進行編輯。此時分為以下幾個操作狀況:
-
Clone the repo
-
Install dependencies
yarn install- Create a
.env.localfile in the root of the project and add a valid Postgres URL. To get a Postgres URL, follow the instructions here.
This is just an example, you should replace the URL with your own.
POSTGRES_URL="postgres://postgres:postgres@localhost:5432/twitter"- Run the migrations
yarn migrate- Start the app
yarn dev請記得清空資料庫! 每個操作會需要等待一點時間,請等一項操作 load 完成,再進行其他操作。速度會受使用的 DB 類型以及作業系統影響,需麻煩您耐心等待,感謝!








