- 註冊/登入 (前後端都有完成)
- 可以多人分享任務的團隊
- 任務增刪改查 (前端只有新增、刪除、編輯,能編輯的欄位有
標題
、內容
、完成
、期限
, 後端完成) - 任務建立後可指派執行人及關注人 (只有後端完成)
- 登入的使用者需要可以看見自己的任務、被指派給自己執行的任務、自己有在關注的任務 (前後端都有完成)
- 任務的子任務,子任務與任務結構相同,子任務完成後自動完成主任務 (前後端都有完成)
- 顯示任務歷史紀錄 (未完成)
- 可以新增評論在歷史紀錄中 (未完成)
- 內容篩選(時段、創作人、任務人)(後端完成)
- 支援排序(建立時間、計劃完成時間、創建者、ID) (未完成)
以下功能使用文字敘述規劃schema架構、流程(包括使用的功能、服務等)即可 請參考 Readme 下方
- 實現訊息提醒任務即將到期
- 定時重複任務
- 部署採用dockerfile(資料庫可使用docker建置)
環境使用 docker compose 建立,只需要在安裝好 docker 的環境中使用 docker compose up
即可啟動完整服務
環境中包含 nest server 及 mongodb,啟動後預設開啟 3000 port,可以使用 http://localhost:3000 測試,http://localhost:3000/api 可以開啟 swagger api 測試頁面
使用 agenda 套件處理排程工作,他提供指定時間執行、定期重複執行功能,所有排程的資料都是儲存在資料庫中,不會因為 server 重啟、停止等等問題遺失資料。此外在多主機環境中他有 lock 可以確保工作不會重複執行,執行工作也不會限制在特定機器中避免單點故障排程就不會執行。
- 設定任務執行時間、function
- 到指定時間後 agenda 自動執行 function
建立一個 notification service,可以依照不同裝置需求串接服務。例如:email 使用 aws ses,mobile 使用 fcm,web 使用 websocket 等等。
如果新增或編輯 todo 時有更新期限,使用 agenda 註冊新任務去通知 notification service 發通知給使用者,可以依照使用者設定決定需要發送到什麼裝置上,例如:使用者設定 email service 會發送 api 到 aws ses 請求發送 email 到使用者設定的信箱。