EDS (Egroup-Document-System)
Egroup-Document-System 以下簡稱 EDS,是一個將專案的 sitemap、userstory、functional map、flowchart 在開發協調上會遇到的事情自動化連接在一起的文件系統。
目的是讓網站開發人員前後端、設計人員、以及PM可以很好的協同合作並且自動把專案相關文件全部串連,從 userstory 開始定義一路到後台以及前台的程式文件串接。 讓需求、流程、程式碼等文件在變動時可以有效降低時間成本。
現階段的版本需要懂一些些的 javascript 即可,如果你還不會也不會有太大影響,因為完全可以跟著範例做操作。
Outline
- Get Started
- Sitemap
- Draw io
- Link functional map
- Link flowchart
- Support multiple versions
- Support i18next
Get Started
- 安裝node js
- clone或下載這個repositiry
- 到根目錄啟動
npm install npm start
會在 localhost 7080 port 開啟dev server
Sitemap
利用js檔案編輯專案的sitemap
id: "home" text: name: "home" ;
檔案位置 src/[document version]/drawio/sitemap.js
id: "home" text: name: "home" id: "page1" parent: 'home' text: name: "page1" ;
利用 parent 屬性建立連結
此時若你有 src/drawio/functional map/page1.html 點擊連結便會導過去
Draw io
編輯工具:draw.io(桌機板下載)
說明 User Story、Sitemap、Functional map 與 Flowchart 文件,進一步瞭解各個文件在開發流程中扮演的角色。
- 1. User Story 使用者情境: 簡單的情境敘述,以客戶或使用者的觀點撰寫下有價值的應用情境與流程。
服務核心 - 示意圖
服務核心 - 範例
情境行為 - 示意圖
情境行為 - 範例
- 2. Sitemap 網站地圖: 概觀系統整體頁面架構,會涉及到哪些頁面內容與其階層關係。
Sitemap 內容架構圖
- 3. Functional map 頁面功能圖: 把 User Story 列出的使用者需求變成功能規格,並以sitemap為基礎,將功能放在適合的頁面上。
功能圖 - 示意圖
功能圖 - 範例
- 4. Flowchart 功能流程圖: 探討使用者怎麼操作功能,內容包含UI、操作、判斷式...等,整理歸納功能的邏輯。
流程圖 - 示意圖
流程圖 - 元件說明
Link functional map
利用js檔案編輯functional map裡面功能的連結
const flowchart_example = link: 'example.html' name: 'flowchart example(you can customer display name here)'; moduleexports = home: flowchart_example ;
檔案位置 src/[document version]/drawio/functionalmap/index.js
const flowchart_example = link: 'example.html' name: 'flowchart example(you can customer display name here)'; // Simply add another flowchart and system will auto link to the file which is called login.html at flowchart folder.// You can copy example.html and rename to login. Try it ! const flowchart_login = link: 'example.html' name: 'login'; moduleexports = home: flowchart_example flowchart_login ;
利用 draw io 新增一個功能並且連結到 flowchart
系統會自動找到你所畫的draw io檔案(這裡為home.html),並且替代 "(flowchart_login)" 的字串成為連結
Link flowchart
利用js檔案編輯flowchart裡面api的連結
moduleexportsjavaDoc = "YOUR_JAVADOC_PATH"; const API_foo = controller: 'Foo' name: 'bar'; moduleexportsapis = example: API_foo ;
檔案位置 src/[document version]/drawio/flowchart/index.js
// You can change javadoc path heremoduleexportsjavaDoc = "YOUR_JAVADOC_PATH"; // Here you can add API and system will auto link to your javadoc.const API_foo = controller: 'Foo' name: 'bar'; const API_login = controller: 'Member' name: 'login'; moduleexportsapis = example: API_foo API_login ;
利用 draw io 新增一個 login api 並且連結到 javadoc
系統會自動找到你所畫的draw io檔案(這裡為example.html)並且替代 "(API_login)" 的字串成為javadoc的連結 此連結可以是外部連結或是在dist目錄裡面放javadoc文檔
Support multiple versions
文件的版本可以隨時新增,只需要在src目錄下新增不同版本,複製v1.0的資料夾更改成你想要的版本,無須多做其他設定。
Support i18next
文件支持多語言版本
p(data-edstarget="i18n" data-i18n='index.articleHeader.content')
使用pug以及EDS語法糖
在你想翻譯的文字上使用data-edstarget="i18n"
以及data-i18n=''
後面路徑即為i18next的設定用法
moduleexports = translation: common: header: home: '首頁' overview: '總覽' versions: '選擇版本' lang: '選擇語言' index: articleHeader: title: '歡迎 !' content: '如果第一次使用請至<a href="document.html">說明</a>查看使用方法' sidebar: userstory: title: '使用者情境' sitemap: title: '網站地圖' overview: title: '總覽' document: sidebar: overview: title: '總覽' items: introduce: '介紹' ;
檔案位置 src/[document version]/i18next/zh.js