Wekan

解決問題 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% 與流程操作相關的客製化功能,則能夠很輕易的進行客製化開發,以利滿足企業組織中流程優化的特別需求。

相關資源

解決問題 Wekan (1)

教學目標

主要解決如何在 CentOS 7 作業系統上安裝與執行 Wekan 開源專案的問題。

重點概念

Kanban 基本觀念

首先看板方法源自於 1940 年代後期,豐田在超市的研究中找到了一種絕佳的設計過程,也就是零庫存管理 (Just In Time,JIT),主要透過可視化的管理方式達到更好的「溝通」,其中溝通的工具就是看板 (Kanban),日語的 Kanban 代表訊號或卡片的意思。至於看板方式則是在 2005 年由 David J. Anderson 首先成功運用至軟體開發中,直到 2007 年才正式命名為看板方法。

接著看板方法有四個基本原則,分別為:

  1. 從既有的流程開始。
  2. 同意持續增量、漸進的變化。
  3. 尊重當前的流程、角色、職責和頭銜。
  4. 鼓勵各層級的領導行為。

以及六個核心實務的運作,分別為:

  1. 視覺化。
  2. 限制半成品數量。
  3. 管理工作流程。
  4. 讓規則明確。
  5. 落實回饋循環。
  6. 由協作改善,經實驗演進。

至於看板的定義則是一種透過漸進、演化過程來改變組織系統的方法,看板的本質是一個很單純的想法,那就是半成品 (Work-in-progress,WIP) 必須被限制,所以我們也可以描述看板方法為半成品的限制系統。

Wekan 基本介紹

再來 Wekan 主要是模仿 Trello 且最接近看板方法管理應用的開源專案,我們可以在安裝 Wekan 之前先進行試用,若能夠滿足最必要的需求再進行進行下述安裝步驟。

最後 Wekan 的安裝方式主要有二種,分別為 Docker 安裝和 Build 安裝,此篇主要以 Build 安裝為主,至於 Docker 安裝相對簡單按照官方的步驟安裝即可。然而 Build 安裝就相對較複雜,我們主要會進行下述六個步驟,分別為:

  1. 建立 Wekan 資料夾。
  2. 安裝 MongoDB 工具。
  3. 安裝 Meteor 工具。
  4. 安裝 Node.js 4.8.4 工具。
  5. 建立 Wekan 網站。
  6. 執行 Wekan 網站。

建立 Wekan 資料夾

1
2
3
4
5
6
7
8
9
10
$ mkdir /wekan
$ cd /wekan
$ git clone https://github.com/wekan/wekan
$ mkdir packages
$ cd packages
$ git clone https://github.com/wekan/flow-router.git kadira-flow-router
$ git clone https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
$ sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/.meteor/packages/meteor-useraccounts-core/package.js
$ cd ..
$ rm package-lock.json

安裝 MongoDB 工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.5.tgz
$ tar -zxvf mongodb-linux-x86_64-3.0.5.tgz
$ mv mongodb-linux-x86_64-3.0.5 mongodb
$ rm -rf mongodb-linux-x86_64-3.0.5.tgz
$ cd mongodb
$ mkdir data
$ mkdir log
$ touch log/mongodb.log
$ vim mongod.conf
fork=true
port=27017
dbpath=/wekan/mongodb/data
logpath=/wekan/mongodb/log/mongodb.log
logappend=true
auth=false
$ /wekan/mongodb/bin/mongod --config /wekan/mongodb/mongod.conf

透過 mongo 客戶端工具進行測試。

1
$ /wekan/mongodb/bin/mongo

其中參數所代表的意義為:

  • fork:設定為 true 時,則啟動之後,不會鎖定。
  • port:設定資料庫連接埠。
  • dbpath:設定資料的儲存位置。
  • logpath:設定記錄檔的儲存位置。
  • logappend:設定為 true 時,則新增記錄檔會新增至檔案之後,而不會進行覆寫。
  • auth:設定為 false 時,則不會進行使用者驗證。

安裝 Meteor 工具

1
$ curl https://install.meteor.com/ | sh

安裝 Node.js 4.8.4 工具

1
2
3
4
5
6
7
8
9
10
$ sudo rm -rf /usr/local/lib/node_modules
$ sudo rm -rf ~/.npm
$ sudo yum install build-essential g++ capnproto nodejs nodejs-legacy npm $ git curl
$ sudo npm -g install n
$ sudo n 4.8.4
$ sudo npm -g install npm@4.6.1
$ sudo npm -g install node-gyp
$ sudo npm -g install node-pre-gyp
$ sudo npm -g install fibers@1.0.15
$ sudo npm install

建立 Wekan 網站

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cd /wekan/wekan
$ rm package-lock.json
$ rm -rf .build
$ meteor build .build --directory
$ cp fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
$ sed -i "s|build\/Release\/bson|browser_build\/bson|g" .build/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/ext/index.js
$ cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
$ rm -rf node_modules/bcrypt
$ npm install bcrypt
$ cd .build/bundle/programs/server
$ npm install
$ cd /wekan/.build/bundle
$ export MONGO_URL='mongodb://127.0.0.1:27017/admin'
$ export ROOT_URL='http://localhost:3000'
$ export MAIL_URL='smtp://user:pass@mailserver.example.com:25/'
$ export PORT=3000

執行 Wekan 網站

1
$ node main.js

透過瀏覽器開啟下述網址,就能夠開始使用 Wekan 網站。

1
http://localhost:3000

總結看板方法主要是從既有的流程開始改善,至於 Wekan 工具則適當的運用,同時持續進行改善與優化,才能夠帶來流程優化之後的最佳成效。

相關資源