1st
This commit is contained in:
133
README.md
Normal file
133
README.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# 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
|
||||
```
|
Reference in New Issue
Block a user