Files
TEMP_spec_system_V2/README.md
beabigegg 825aa2e60f Done
2025-08-20 15:13:31 +08:00

133 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. 下載程式碼
```bash
git clone <your-repository-url>
cd TEMP_spec_system_V2
```
### 2. 建立並啟用虛擬環境
```bash
# Windows
python -m venv .venv
.\.venv\Scripts\activate
# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate
```
### 3. 安裝相依套件
```bash
pip install -r requirements.txt
```
### 4. 設定環境變數
複製範例檔案,並填入您的實際設定:
```bash
# Windows
copy .env.example .env
# macOS / Linux
cp .env.example .env
```
編輯 `.env` 檔案,確保包含以下所有欄位:
```dotenv
# 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 驗證。
```bash
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. 初始化資料庫
執行初始化腳本來建立所有需要的資料表,並產生一個預設的管理員帳號。
```bash
python init_db.py
```
腳本會提示您確認操作。輸入 `yes` 後,它會建立資料表並在終端機中顯示預設 `admin` 帳號的隨機密碼。**請務必記下此密碼**。
---
## 執行應用程式
### 開發模式
**請確保您的 ONLYOFFICE Docker 容器已在運行中**,然後在另一個終端機視窗執行 `app.py`
```bash
python app.py
```
應用程式預設會在 `http://127.0.0.1:5000` 上執行。
### 生產環境
在生產環境中,建議使用生產級的 WSGI 伺服器,例如 `Gunicorn` (Linux) 或 `Waitress` (Windows)。
**使用 Waitress (Windows) 的範例:**
```bash
pip install waitress
waitress-serve --host=0.0.0.0 --port=8000 app:app
```