本文適合喜歡倒騰效率工具的小伙伴和 Go 語言初學者

本文作者:HelloGitHub-蔡文心
這里是維護 4 年有余開源愛好者的老朋友——HelloGitHub 推出的《講解開源項目》系列。
今天給大家帶來的一款基於 Go+React 實現的項目管理工具開源項目——Taskcafe,該項目可以作為 Go Web 的實戰項目學習,不會 Go 的讀者也可以輕松通過 Docker 安裝使用。
一、介紹
相信各位小伙伴們在工作中或多或少都有接觸過項目管理工具。項目管理工具可以為我們提供輕松量化工作內容、為團隊提供高效協作的方法、項目進度可視化等等的幫助,提高我們的工作效率和對目標的專注程度。Taskcafe 就能夠讓我們快速擁有一個屬於自己的任務管理工具,幫助記錄、管理、追蹤任務,讓你的生活和工作更加高效!

在項目管理工具中最常用的視圖模式就是看板了,所以看板也被稱為項目管理工具中的黃金聖杯。使用 Taskcafe 可以讓我們輕松的將周身事物看板(任務),萬物皆可放入看板。
目前 Taskcafe 支持的功能:
- 確保任務、項目、任務組等數據經過驗證(例如:僅項目名稱不能有空格)
- 任務視圖篩選
- 用戶界面
- 截止日期通知和提醒
- 項目收藏夾
- 團隊設置
- 日歷視圖
- 列表顯示
- 任務固定
- 等等
市面上已有種類繁多的任務管理工具,從 MeisterTask 到 禪道 再到 Teambition,他們使用從簡單到復雜、功能從基礎到豐富。但我印象中上述這些基本都是付費的,免費開源、部署方便的 Taskcafe 可以一試,讓我們繼續往下看吧!
1.1 私有部署
能夠在個人服務器上搭建個人的項目管理工具,不用擔心隱私安全問題和收費的煩惱。
1.2 可擴展
使用任務管理工具時總會遇到因為自身業務的特殊性導致現有工具不能滿足需求的情況。因為 Taskcafe 是開源項目,所以能夠自己動手添加適應自己工作流程的功能。
1.3 安裝方式
- Docker
- 源碼
考慮到此項目的受眾可能包括非程序員人群,接下來本文中將演示最方便的一種方案 使用 Docker 安裝。
二、安裝
2.1 Docker
准備
Step 1 Clone 項目
git clone https://github.com/JordanKnott/taskcafe && cd taskcafe
Step 2 在項目根目錄下執行
docker-compose -p taskcafe up -d
Step 3 成功

三、使用
3.1 創建 Admin 用戶

3.2 創建項目

3.3 創建看板(list)

3.4 添加任務(card)
在任務中可以添加成員、TODO 列表、查看操作記錄、添加標簽和添加附件等等

3.5 移動任務

Taskcafe 包含的功能就不一一介紹了,跟着項目的文檔,在 Web 頁面“點點點”就可以了。那么快去動手實踐一番吧!
四、技術棧
1.1 前端
部分功能采用知名的 Kanban 面板實現。
- React
- Typescript
- GraphQL
2.1 后端
- Golang
- Chai 用於輕松構建 Restfull API
- JWT 用戶態控制
- Postgres 數據庫
- Machinery 一個分布式的消息隊列
3.1 項目結構
...
├── README.md
├── cmd
│ ├── mage
│ └── taskcafe
│ ├── main.go //go的啟動文件
├── frontend //前端工程
│ ├── .editorconfig
│ ├── .eslintignore
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── .prettierrc.js
│ ├── .storybook
│ ├── Makefile
│ ├── codegen.yml
│ ├── package.json
│ ├── public
│ ├── src
│ ├── tsconfig.json
│ └── yarn.lock
├── internal //后端工程主要內容
│ ├── auth
│ ├── commands
│ ├── db
│ ├── graph
│ ├── logger
│ ├── notification
│ ├── route //路由注冊
│ └── utils
├── magefile.go
├── migrations //數據庫遷移文件
...
后端使用 Golang 編寫,屬於 Golang 在 Web 項目的運用,采用了前后端分離模式,由於使用了 GraphQL 可以明顯發現 API 數量有所減少。
如果你是一個 Golang 新手那非常推薦你閱讀下 Taskcafe 的源碼,該項目結構清晰並且有非常友好的注釋,常用的 Go 中間件都有用到,適合做為 Go 新手實戰和學習項目。
五、最后
至此,相信你對 Taskcafe 項目有了簡單了解,並且已經能夠成功在本地運行起來了。希望你在實際體驗中融入自己的工作、生活和周圍的事物來感受看板的魅力,充分體會到萬物皆可放入看板。
如果本文能夠為你帶來一點點幫助,請在右下角幫我點個贊吧~
