beabigegg 825aa2e60f Done
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00
2025-08-20 15:13:31 +08:00

TEMP Spec System - 暫時規範管理系統 (ONLYOFFICE-Edition)

這是一個使用 Flask 開發的 Web 應用程式,旨在管理、追蹤和存檔暫時性的工程規範。此版本已整合 ONLYOFFICE Document Server提供強大的所見即所得WYSIWYG線上文件編輯體驗。

核心功能

  • 使用者權限管理: 內建三種角色 (viewer, editor, admin),各角色擁有不同操作權限。
  • 規範生命週期: 支援暫時規範的建立、啟用、展延、終止與刪除。
  • 線上文件編輯: 整合 ONLYOFFICE Document Server支援多人協作與專業級的線上 Word 文件編輯。
  • 範本自動填入: 建立規範時,可將表單資料自動填入 Word 範本中。
  • 檔案管理: 支援上傳簽核後的文件,並與對應的規範進行關聯。
  • 歷史紀錄: 詳細記錄每一份規範的所有變更歷史,方便追蹤與稽核。

環境要求

在部署此應用程式之前,請確保您的系統已安裝以下軟體:

  1. Python: 建議使用 Python 3.10 或更高版本。
  2. MySQL: 需要一個 MySQL 資料庫來儲存所有應用程式資料。
  3. Docker: [重要] 本專案依賴 ONLYOFFICE Document Server推薦使用 Docker 進行部署和管理。請確保您的伺服器已安裝並運行 Docker。
  4. Git: 用於從版本控制系統下載程式碼。

安裝與設定步驟

請依照以下步驟來設定您的開發或生產環境:

1. 下載程式碼

git clone <your-repository-url>
cd TEMP_spec_system_V2

2. 建立並啟用虛擬環境

# Windows
python -m venv .venv
.\.venv\Scripts\activate

# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate

3. 安裝相依套件

pip install -r requirements.txt

4. 設定環境變數

複製範例檔案,並填入您的實際設定:

# Windows
copy .env.example .env

# macOS / Linux
cp .env.example .env

編輯 .env 檔案,確保包含以下所有欄位:

# Flask 應用程式的密鑰,用於保護 session
SECRET_KEY="your-super-secret-and-random-string"

# 資料庫連線 URL
DATABASE_URL="mysql+pymysql://user:password@host:port/dbname"

# --- ONLYOFFICE 設定 ---
# 您 ONLYOFFICE Document Server 的公開存取位址
ONLYOFFICE_URL="http://localhost:8080/"

# 用於保護 ONLYOFFICE 通訊的 JWT 密鑰 (請務必修改為一個新的隨機長字串)
ONLYOFFICE_JWT_SECRET="your-onlyoffice-jwt-secret-string"

注意: 請先在您的 MySQL 中手動建立一個資料庫。

5. 啟動 ONLYOFFICE Document Server

使用 Docker 啟動 ONLYOFFICE Document Server並啟用 JWT 驗證。

docker run -i -t -d -p 8080:80 --restart=always \
    -e JWT_ENABLED=true \
    -e JWT_SECRET="your-onlyoffice-jwt-secret-string" \
    onlyoffice/documentserver

[重要]:指令中的 JWT_SECRET 值,必須和您在 .env 檔案中設定的 ONLYOFFICE_JWT_SECRET 完全一致

6. 初始化資料庫

執行初始化腳本來建立所有需要的資料表,並產生一個預設的管理員帳號。

python init_db.py

腳本會提示您確認操作。輸入 yes 後,它會建立資料表並在終端機中顯示預設 admin 帳號的隨機密碼。請務必記下此密碼


執行應用程式

開發模式

請確保您的 ONLYOFFICE Docker 容器已在運行中,然後在另一個終端機視窗執行 app.py

python app.py

應用程式預設會在 http://127.0.0.1:5000 上執行。

生產環境

在生產環境中,建議使用生產級的 WSGI 伺服器,例如 Gunicorn (Linux) 或 Waitress (Windows)。

使用 Waitress (Windows) 的範例:

pip install waitress
waitress-serve --host=0.0.0.0 --port=8000 app:app
Description
No description provided
Readme 80 KiB
Languages
Python 47.4%
HTML 43.9%
CSS 8.7%