Giter Site home page Giter Site logo

starktech-todolist's Introduction

需求

  1. 註冊/登入 (前後端都有完成)
  2. 可以多人分享任務的團隊
  3. 任務增刪改查 (前端只有新增、刪除、編輯,能編輯的欄位有標題內容完成期限, 後端完成)
  4. 任務建立後可指派執行人及關注人 (只有後端完成)
  5. 登入的使用者需要可以看見自己的任務、被指派給自己執行的任務、自己有在關注的任務 (前後端都有完成)
  6. 任務的子任務,子任務與任務結構相同,子任務完成後自動完成主任務 (前後端都有完成)
  7. 顯示任務歷史紀錄 (未完成)
  8. 可以新增評論在歷史紀錄中 (未完成)
  9. 內容篩選(時段、創作人、任務人)(後端完成)
  10. 支援排序(建立時間、計劃完成時間、創建者、ID) (未完成)

以下功能使用文字敘述規劃schema架構、流程(包括使用的功能、服務等)即可 請參考 Readme 下方

  1. 實現訊息提醒任務即將到期
  2. 定時重複任務
  3. 部署採用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 可以確保工作不會重複執行,執行工作也不會限制在特定機器中避免單點故障排程就不會執行。

流程

  1. 設定任務執行時間、function
  2. 到指定時間後 agenda 自動執行 function

任務到期提醒

建立一個 notification service,可以依照不同裝置需求串接服務。例如:email 使用 aws ses,mobile 使用 fcm,web 使用 websocket 等等。

流程

如果新增或編輯 todo 時有更新期限,使用 agenda 註冊新任務去通知 notification service 發通知給使用者,可以依照使用者設定決定需要發送到什麼裝置上,例如:使用者設定 email service 會發送 api 到 aws ses 請求發送 email 到使用者設定的信箱。

starktech-todolist's People

Contributors

zwhitey avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.