跳至主要内容

Sheltie

Sheltie 是個 markdown 線上協同編輯的工具, 依循固定格式編寫專案進展, 自動整理成投影片, 提供線上投影片播放和匯出 pptx 的功能.

需求規格處理

專案 Markdown 文件格式

各個專案之間用 --- 分行, 每個專案格式如下:

# 專案名稱

## 基本資訊

- 燈號: 綠 | 黃 | 紅
- 狀態: 提案準備中 | 需求訪談 | 開發中 | SIT | QAS | REG | PROD
- 進度: 50%
- 窗口: Andy
- 時程:
- 開發: 2025-12-20 ~ 2025-12-25
- SIT: 2025-12-26 ~ 2025-12-27
- QAS: 2025-12-28 ~ 2025-12-29
- REG: 2025-12-30 ~ 2025-12-31
- PROD: 2026-01-01 ~ 2026-01-02
- 相關單位:
- 主辦:
- 協辦/協同:
- 分類:

## 會辦狀況 (日期反序)

- 2025-12-20
- _待追蹤_ 需要確認規格文件
- 完成初步設計評審
- 2025-12-15
- _預計_ 下週開始開發
- 正在進行需求訪談
- 2025-10-01
- 這是一個月前的舊記錄
- 應該顯示為灰色

## 其他補充

- AAA
- BBB
- ...

轉換成投影片

  • 自動排序專案,排序方式為:
    1. 燈號: 紅 > 黃 > 綠
    2. 分類: 按照分類排序
    3. 上線日期: 由近到遠
  • 投影片前面幾頁為自動生成專案的彙整資訊表格
    • 每頁 10 個專案
    • 排序方式同上
    • 表格欄位為:
      • 燈號
      • 專案名稱
      • 目前狀態
      • 進度
      • 窗口
  • 專案投影片
    • 每個專案一個投影片為主, 超過一個投影片時, 自動分成兩個投影片
    • 基本資訊用表格方式放在投影片上半部 (1/3), 下半部為專案的其他補充 (2/3)
    • 表格配置請幫我設計, 欄位請按照需求規格
    • 其他補充資訊版面請幫我設計, 但另有其他規格如下:
      • 標示預計的會辦項目文字為藍色/斜體
      • 標示待追蹤的會辦項目文字為紅色/粗體
      • 一個月前的會辦資訊字體顏色為灰色

前端需求

  • 以 Vue.js 為主
  • Markdown 編輯器提供
    • 純文字+Syntex highlight 模式
    • WYSIWYG 模式
  • 可線上多人協同編輯
  • 線上投影片播放時, 會自動依規格格式轉換成投影片
  • 匯出盡量用 pptx 原生元件生成, 不要生成圖片後嵌入, 版面請遵循上述需求幫我設計, 商務、洗煉

後端需求

  • 以 goland 為主
  • 本地端 sqlite 資料庫
  • API 設計請幫我設計

部署需求

  • 以 docker 為主, 前後端打包在同一個 docker image
  • 部署環境請幫我設計

釐清需求

📋 Sheltie 專案需求分析 我已經閱讀了 idea.md 的需求,以及參考了 border-collie 專案的 UI 設計。以下是需要進一步釐清的項目: 🔍 需進一步釐清的問題

  1. 協同編輯技術選型 您偏好使用哪種協同編輯方案?
  • OT (Operational Transformation) - 如 ShareDB
  • CRDT - 如 Yjs 或 Automerge
  • WebSocket 簡易同步 - 適合小型團隊 這會影響後端架構和複雜度
  1. 後端語言確認 idea.md 中提到「以 goland 為主」,確認是指 Go (Golang) 語言?

  2. 認證與權限

  • 是否需要使用者登入/認證功能?
  • 專案文件是否需要權限控制(如:只有特定人可編輯)?
  • 或是開放式協作,只要有連結就能編輯?
  1. 投影片樣式設計
  • 匯出 PPTX 時的模板/配色是否需要特定企業風格?
  • 「商務、洗煉」風格是否有參考範例?
  • 投影片是否需要公司 Logo 或固定版頭?
  1. WYSIWYG 編輯器選型
  • 您偏好哪種 Markdown WYSIWYG 編輯器?
    • Milkdown - 現代化、可擴展
    • Tiptap - Vue 生態圈常用
    • Editor.js - Block-based
    • 其他偏好?
  1. 專案資料範圍
  • 每個「工作區」會包含多少專案(約略數量)?
  • 會辦紀錄通常會累積多長時間(用於評估資料量)?
  1. 部署環境
  • 目標部署環境是什麼?(內網伺服器、雲端、Docker Compose、K8s 等)
  • 是否需要支援 HTTPS/SSL?
  • 預期同時線上協作的人數上限?
  1. 分享機制
  • 是否需要類似 border-collie 的 URL 連結分享功能(壓縮資料於 URL 中)?
  • 或是採用伺服器儲存 + 分享連結 ID 的方式?
  1. WebSocket 簡易同步
  2. Go (Golang) 語言
  3. 後續的迭代再設計登入驗證, 目前僅需開放式協作,只要有連結就能編輯, 請設計分享按鈕
  4. 後續的迭代會提供公司樣板, 目前請先以白底的投影片設計
  5. 由你決定
  6. 一個工作區約 30 個專案, 會辦紀錄平均九個月, 約兩週一更新
  7. Docker Compose, 上限先抓 30 個工作區
  8. 伺服器儲存 + 分享連結 ID, 資料有異動每分鐘自動儲存
  9. 請另設計簡易管理界面, 用於管理工作區, 包含新增、刪除、修改工作區名稱的功能. 需有密碼保護