Files
Timeline_Generator/README.md
beabigegg 5e088fa473 文檔整理與依賴整合
主要變更:
- 刪除 PRD.md(產品需求文檔)
- 刪除 examples 目錄中的文檔檔案(README.md, QUICK_START.md, color_reference.md)
- 整合 examples 文檔內容到根目錄 README.md
  - 新增常用顏色代碼表格
  - 新增示範檔案說明
  - 保留所有重要使用資訊
- 合併 requirements.txt 和 requirements-core.txt
  - 更新所有套件到最新相容版本
  - 支援 Python 3.8 - 3.13
  - 統一依賴管理

技術細節:
- FastAPI: 0.104.1 → 0.115.6
- Pydantic: 2.5.0 → 2.10.5(新增 pydantic-settings)
- Pytest: 7.4.3 → 8.3.4
- 其他套件同步更新

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 12:07:01 +08:00

266 lines
6.8 KiB
Markdown
Raw 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.

# 📊 TimeLine Designer
> 輕鬆建立專業的時間軸圖表
TimeLine Designer 是一款桌面應用程式,讓您能夠輕鬆匯入事件資料並生成高品質的時間軸圖表。支援 CSV/XLSX 匯入,可匯出為 PNG、PDF、SVG 等多種格式。
## ✨ 主要特性
- **零程式門檻** - 直覺的 GUI 操作介面
- **快速渲染** - 100 筆事件 < 2
- **高解析輸出** - 支援 300 DPI 印刷品質
- **多格式匯出** - PNG / PDF / SVG
- **跨平台支援** - Windows / macOS
- **主題系統** - 多種視覺主題可選
- **智能刻度** - 自動調整時間刻度單位
## 🚀 快速開始
### 環境需求
- Python 3.8 或以上版本
- Windows 10/11 macOS 10.14+
### 安裝步驟
1. **克隆專案**
```bash
git clone <repository-url>
cd Timeline_Generator
```
2. **建立虛擬環境**
```bash
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
```
3. **安裝依賴**
```bash
pip install -r requirements.txt
```
4. **啟動應用程式**
```bash
python app.py
```
## 📖 使用說明
### 1. 匯入資料
準備一個 CSV XLSX 檔案包含以下欄位
| 欄位名稱 | 必填 | 說明 | 範例 |
|---------|------|------|------|
| id | | 事件唯一識別碼 | evt-001 |
| title | | 事件標題 | 專案啟動 |
| start | | 開始時間 | 2024-01-01 09:00:00 |
| end | | 結束時間 | 2024-01-01 17:00:00 |
| group | | 事件群組/分類 | Phase 1 |
| description | | 事件詳細描述 | 專案正式啟動會議 |
| color | | 事件顏色 (HEX) | #3B82F6 |
**範例 CSV 檔案:**
```csv
id,title,start,end,group,description,color
evt-001,專案啟動,2024-01-01 09:00:00,2024-01-01 17:00:00,Phase 1,專案正式啟動會議,#3B82F6
evt-002,需求分析,2024-01-02 09:00:00,2024-01-05 18:00:00,Phase 1,收集並分析系統需求,#10B981
```
#### 常用顏色代碼
| 顏色 | 色碼 | 適用情境 |
|------|------|---------|
| 藍色 | `#3B82F6` | 一般事件資訊類 |
| 綠色 | `#10B981` | 完成成功正面事件 |
| 黃色 | `#F59E0B` | 警告待處理重要提醒 |
| 紅色 | `#EF4444` | 緊急錯誤負面事件 |
| 紫色 | `#8B5CF6` | 特殊事件里程碑 |
| 粉色 | `#EC4899` | 個人事件慶祝活動 |
| 靛藍色 | `#6366F1` | 專業企業 |
| 青色 | `#06B6D4` | 清新創新 |
| 橙色 | `#F97316` | 活力創意 |
#### 示範檔案說明
`examples/` 目錄包含三個示範檔案
1. **template.csv** - 空白模板
- 包含所有欄位標題
- 適合建立新時間軸
2. **demo_project_timeline.csv** - 專案開發時間軸
- 15 筆事件完整開發週期
- 涵蓋需求分析研發測試部署
- 時間範圍2024/01-02
3. **demo_life_events.csv** - 個人生活時間軸
- 11 筆事件記錄 11 年生涯
- 涵蓋教育職涯生活里程碑
- 時間範圍2015-2026
4. **demo_product_roadmap.csv** - 產品路線圖
- 14 筆事件季度規劃
- 涵蓋募資產品發布市場擴展
- 時間範圍2024-2025
### 2. 生成時間軸
點擊生成時間軸按鈕系統將自動
- 計算最佳時間刻度
- 處理重疊事件排版
- 渲染互動式時間軸
### 3. 匯出圖表
選擇匯出格式和解析度點擊匯出按鈕
- **PNG** - 適合插入文件或簡報
- **PDF** - 適合印刷和存檔
- **SVG** - 適合進一步編輯
## 🏗️ 專案架構
```
Timeline_Generator/
├── backend/ # 後端模組
│ ├── __init__.py
│ ├── main.py # FastAPI 主程式
│ ├── schemas.py # 資料模型定義
│ ├── importer.py # CSV/XLSX 匯入
│ ├── renderer.py # 時間軸渲染
│ └── export.py # 圖表匯出
├── frontend/ # 前端介面
│ └── static/
│ └── index.html # HTML GUI
├── tests/ # 測試套件
│ ├── unit/ # 單元測試
│ └── e2e/ # 端對端測試
├── docs/ # 文檔
│ ├── PRD.md # 產品需求文檔
│ ├── SDD.md # 系統設計文檔
│ ├── TDD.md # 測試驅動開發文檔
│ └── GUIDLINE.md # AI 開發指南
├── app.py # PyWebview 主程式
├── requirements.txt # Python 依賴
└── README.md # 本文件
```
## 🧪 執行測試
```bash
# 執行所有測試
pytest
# 執行單元測試
pytest tests/unit/ -v
# 執行測試並生成覆蓋率報告
pytest --cov=backend --cov-report=html
# 執行效能測試
pytest tests/unit/ -m performance
```
## 📚 API 文檔
應用程式啟動後可訪問以下 API 文檔
- Swagger UI: `http://localhost:8000/api/docs`
- ReDoc: `http://localhost:8000/api/redoc`
### 主要 API 端點
| Method | Endpoint | 功能 |
|--------|----------|------|
| POST | `/api/import` | 匯入 CSV/XLSX 檔案 |
| GET | `/api/events` | 取得事件列表 |
| POST | `/api/render` | 生成時間軸 JSON |
| POST | `/api/export` | 匯出時間軸圖檔 |
| GET | `/api/themes` | 取得主題列表 |
## 🎨 主題系統
支援四種內建主題
1. **現代風格** (Modern) - 清新的藍色調
2. **經典風格** (Classic) - 優雅的紫色調
3. **極簡風格** (Minimal) - 黑白簡約設計
4. **企業風格** (Corporate) - 專業的灰色調
## 🔧 開發指南
### 程式碼規範
遵循 **VIBE** 開發原則
- **V**ision - 理解產品願景
- **I**nterface - 定義介面契約
- **B**ehavior - 實作對應行為
- **E**vidence - 驗證成果
### 測試先行
本專案遵循 TDD (Test-Driven Development) 原則
1. 先撰寫測試案例
2. 實作功能代碼
3. 執行測試驗證
4. 重構優化
### 程式碼檢查
```bash
# Linting
flake8 backend/
# Type checking
mypy backend/
# Security scan
bandit -r backend/
```
## 📊 效能指標
根據 PRD.md 定義的 KPI
| 指標 | 目標 | 驗收標準 |
|------|------|----------|
| 新手上手時間 | < 5 分鐘 | 教學引導完整 |
| 渲染效能 | 100 < 2 | 通過效能測試 |
| 輸出品質 | 300 DPI | PDF/SVG 通過印刷驗證 |
## 🐛 問題回報
如果您發現任何問題請提供以下資訊
1. 作業系統與版本
2. Python 版本
3. 錯誤訊息或截圖
4. 重現步驟
## 📄 授權條款
本專案採用 MIT 授權條款
## 🙏 致謝
本專案使用以下開源套件
- [FastAPI](https://fastapi.tiangolo.com/) - Web 框架
- [Plotly](https://plotly.com/) - 圖表渲染
- [PyWebview](https://pywebview.flowrl.com/) - GUI 容器
- [Pydantic](https://pydantic-docs.helpmanual.io/) - 資料驗證
- [Pandas](https://pandas.pydata.org/) - 資料處理
---
**Version:** 1.0.0
**Author:** AI Agent
**Documentation:** See `docs/` folder for detailed specifications