Leo Yeh's Blog

解決問題 Wekan (2)

教學目標

主要解決如何在 CentOS 7 作業系統上安裝與應用 Wekan API 優化流程的問題。

重點概念

首先 Wekan 開源專案主要是用 Node.js + MongoDB 開發的看版管理網站,然而若要優化流程,則還需要客製化輸出結果,此時是否有 REST API 能夠直接取得 Wekan 網站中的卡片資訊呢?答案是有的,我們可以使用 Wekan API 以 REST API 的方式直接取得 Wekan 網站中的卡片資訊。

接著我們可以透過下述指令安裝 Wekan API ,此 Wekan API 主要是用 Python + MongoDB 開發,透過 Python 能夠讓我們整合更多元化的機器學習和資料分析模組,將有助於流程的自動優化,以利企業達到最大的效益。

1
2
3
4
5
6
$ git clone https://github.com/LINKIWI/wekan-api.git 
$ sudo yum install python-virtualenv
$ virtualenv env
$ source env/bin/activate
$ make bootstrap
$ make serve

再來我們就能夠輸入「http://localhost:5000/」的網址開始使用 Wekan API,Wekan API 目前主要能夠取得三個重要的資訊,分別為:

  1. 看板 (boards)
  2. 清單 (lists)
  3. 卡片 (cards)

最後不同看板中會有不同清單,我們可以將清單當成不同的流程階段,並且不同清單會有不同卡片,我們可以將卡片當成不同的流程步驟,至於不同卡片中則會有許多關鍵資訊,包括人、事、時、地和物,其中我們可以針對每張卡片的成員、開始日期和結束日期搭配排程演算法優化流程的安排。此外我們還可以修改「/src/core」目錄中的「app.py」檔案,就能夠讓其它不同網域的應用程式進行跨網頁存取,像是 HTML5 網頁,請注意若要進行跨網頁存取則需要安裝 flask-cors 模組。

安裝 flask-cors 模組。

1
$ pip install -U flask-cors

修改「app.py」程式碼。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import json
import os

from flask import Flask
from flask_cors import CORS
from pymongo import MongoClient

app = Flask(__name__)
CORS(app)

def init_db():
config_file = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
'../../config/database.json',
)
database_config = json.loads(open(config_file).read())

client = MongoClient(database_config['host'], database_config['port'])
return client[database_config['name']]

撰寫 HTML5 程式碼 (部份)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

$(document).ready(function(){
$.ajax({
url: 'http://localhost:5000/cards',
type: "GET",
dataType: "json",
complete: function(data, textStatus, jqXHR) {
console.log(textStatus);
},
success: function (data, textStatus, jqXHR) {
console.log(data.crads);
}
});
});

總結我們透過 Wekan API 搭配跨網域存取的功能,將能夠在 HTML5 網頁中直接透過 jQuery 的 Ajax 函數直接存取 Wekan API 的資訊,並且搭配 Bootstrap 美化介面,同時將排程演算法先以 JavaScript 進行撰寫,此時就能夠在短時間完成概念性驗證的示範網站立即與相關人員立即溝通與快速調整,以利符合流程的需求,更進一步優化流程。因此 Wekan 提供 80% 與流程操作相關的實用功能之外,20% 與流程操作相關的客製化功能,則能夠很輕易的進行客製化開發,以利滿足企業組織中流程優化的特別需求。

相關資源

⬅️ Go back