README.md 6.1 KB

MAA測試問題追蹤系統

一個基於Node.js和SQLite的問題追蹤系統,專為MAA(Mobile Application Automation)測試團隊設計。

功能特色

  • 🐛 問題管理: 建立、編輯、刪除和追蹤問題
  • 📁 專案管理: 組織問題到不同專案中
  • 🏷️ 標籤系統: 狀態(待處理、處理中、已完成)和優先級(高、中、低)
  • 💬 評論功能: 為問題添加評論和討論
  • 📊 統計儀表板: 即時顯示問題統計資料
  • 🔍 篩選搜尋: 按專案、狀態、優先級篩選問題
  • 📱 響應式設計: 支援桌面和行動裝置
  • 🎨 現代化UI: 美觀且易用的使用者介面

技術架構

  • 後端: Node.js + Express.js
  • 資料庫: SQLite3
  • 前端: 原生HTML/CSS/JavaScript
  • 樣式: 自定義CSS + Font Awesome圖示

快速開始

環境需求

  • Node.js 14.0.0 或更高版本
  • npm 或 yarn 套件管理器

安裝步驟

  1. 複製專案

    git clone <repository-url>
    cd maa-test-issues
    
  2. 安裝依賴套件

    npm install
    
  3. 啟動應用程式

    npm start
    
  4. 開發模式(自動重啟)

    npm run dev
    
  5. 開啟瀏覽器 訪問 http://localhost:3000

預設資料

系統會自動建立範例資料,包括:

  • 3個範例專案
  • 5個範例問題
  • 相關評論

API 文件

問題 API

取得問題列表

GET /api/issues
參數:
  - project_id: 專案ID(可選)
  - status: 狀態(可選)
  - priority: 優先級(可選)
  - page: 頁碼(預設1)
  - limit: 每頁數量(預設10)

取得單一問題

GET /api/issues/:id

建立問題

POST /api/issues
Body:
{
  "title": "問題標題",
  "description": "問題描述",
  "project_id": 1,
  "priority": "high",
  "assignee": "開發者姓名",
  "reporter": "回報者姓名"
}

更新問題

PUT /api/issues/:id
Body: 同建立問題,所有欄位可選

刪除問題

DELETE /api/issues/:id

新增評論

POST /api/issues/:id/comments
Body:
{
  "author": "評論者姓名",
  "content": "評論內容"
}

專案 API

取得專案列表

GET /api/projects

取得單一專案

GET /api/projects/:id

建立專案

POST /api/projects
Body:
{
  "name": "專案名稱",
  "description": "專案描述",
  "status": "active"
}

更新專案

PUT /api/projects/:id
Body: 同建立專案,所有欄位可選

刪除專案

DELETE /api/projects/:id

取得專案統計

GET /api/projects/:id/stats

部署到Gogs

1. 準備部署檔案

建立 .gitignore 檔案:

node_modules/
*.log
.env
database/maa_test.db
.DS_Store

2. 推送到Gogs倉庫

# 初始化Git倉庫
git init

# 添加遠端倉庫
git remote add origin <gogs-repository-url>

# 添加檔案
git add .

# 提交變更
git commit -m "Initial commit: MAA測試問題追蹤系統"

# 推送到Gogs
git push -u origin main

3. 伺服器部署

在目標伺服器上:

# 複製倉庫
git clone <gogs-repository-url>
cd maa-test-issues

# 安裝依賴
npm install

# 設定環境變數(可選)
export NODE_ENV=production
export PORT=3000

# 啟動應用程式
npm start

4. 使用PM2進行進程管理

# 安裝PM2
npm install -g pm2

# 啟動應用程式
pm2 start server.js --name "maa-issues"

# 設定開機自啟
pm2 startup
pm2 save

5. 使用Nginx反向代理

建立Nginx配置檔案:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

環境變數

變數名稱 預設值 說明
PORT 3000 伺服器端口
NODE_ENV development 執行環境

資料庫結構

projects 表格

  • id: 主鍵
  • name: 專案名稱
  • description: 專案描述
  • status: 專案狀態
  • created_at: 建立時間
  • updated_at: 更新時間

issues 表格

  • id: 主鍵
  • project_id: 專案ID(外鍵)
  • title: 問題標題
  • description: 問題描述
  • status: 問題狀態
  • priority: 優先級
  • assignee: 指派給
  • reporter: 回報者
  • created_at: 建立時間
  • updated_at: 更新時間

issue_comments 表格

  • id: 主鍵
  • issue_id: 問題ID(外鍵)
  • author: 評論者
  • content: 評論內容
  • created_at: 建立時間

開發指南

專案結構

maa-test-issues/
├── database/
│   ├── init.js          # 資料庫初始化
│   └── maa_test.db      # SQLite資料庫檔案
├── routes/
│   ├── issues.js        # 問題相關路由
│   └── projects.js      # 專案相關路由
├── public/
│   ├── index.html       # 主頁面
│   ├── styles.css       # 樣式檔案
│   └── script.js        # 前端JavaScript
├── server.js            # 主伺服器檔案
├── package.json         # 專案配置
└── README.md           # 說明文件

添加新功能

  1. routes/ 目錄下建立新的路由檔案
  2. server.js 中引入並使用新路由
  3. 更新前端頁面以支援新功能
  4. 更新資料庫結構(如需要)

測試

# 執行測試
npm test

故障排除

常見問題

  1. 資料庫連線失敗

    • 檢查SQLite檔案權限
    • 確認資料庫檔案路徑正確
  2. 端口被占用

    • 更改PORT環境變數
    • 或終止占用端口的進程
  3. 依賴安裝失敗

    • 檢查Node.js版本
    • 清除npm快取:npm cache clean --force

授權

MIT License

貢獻

歡迎提交Issue和Pull Request來改善這個專案!

聯絡資訊

如有問題或建議,請聯繫MAA測試團隊。