372 lines
7.9 KiB
Markdown
372 lines
7.9 KiB
Markdown
# AI 展示平台專案完整解析
|
|
|
|
## 📋 專案概述
|
|
|
|
**強茂集團 AI 展示平台** 是一個企業內部 AI 應用展示與競賽管理系統,旨在促進 AI 技術的創新與應用。系統提供完整的競賽管理、評審系統、用戶互動和數據分析功能。
|
|
|
|
## 🏗️ 技術架構
|
|
|
|
### 前端技術棧
|
|
- **框架**: Next.js 15.2.4 (App Router)
|
|
- **語言**: TypeScript 5
|
|
- **UI 庫**:
|
|
- Radix UI (無障礙組件)
|
|
- shadcn/ui (設計系統)
|
|
- Tailwind CSS (樣式框架)
|
|
- **狀態管理**: React Context API
|
|
- **表單處理**: React Hook Form + Zod
|
|
- **圖表**: Recharts
|
|
- **包管理器**: pnpm
|
|
|
|
### 後端技術棧
|
|
- **資料庫**: MySQL 8.0
|
|
- **ORM**: 自定義資料庫服務層
|
|
- **API**: Next.js API Routes
|
|
- **認證**: JWT + localStorage
|
|
- **文件上傳**: 本地存儲
|
|
|
|
### 資料庫設計
|
|
- **主機**: mysql.theaken.com:33306
|
|
- **資料庫**: db_AI_Platform
|
|
- **表數量**: 25 個核心表
|
|
- **視圖數量**: 3 個統計視圖
|
|
- **觸發器**: 4 個自動計算觸發器
|
|
|
|
## 🎯 核心功能模組
|
|
|
|
### 1. 用戶管理系統
|
|
- **三種角色**:
|
|
- 一般用戶 (user): 瀏覽應用、參與投票
|
|
- 開發者 (developer): 提交AI應用、參與競賽
|
|
- 管理員 (admin): 系統管理、數據分析
|
|
|
|
- **核心功能**:
|
|
- 註冊/登入/登出
|
|
- 個人資料管理
|
|
- 收藏應用
|
|
- 按讚功能 (每日限制)
|
|
- 瀏覽記錄追蹤
|
|
- 活動統計分析
|
|
|
|
### 2. 競賽系統
|
|
- **競賽類型**:
|
|
- 個人賽 (individual)
|
|
- 團隊賽 (team)
|
|
- 提案賽 (proposal)
|
|
- 混合賽 (mixed)
|
|
|
|
- **競賽狀態**:
|
|
- upcoming: 即將開始
|
|
- active: 進行中
|
|
- judging: 評審中
|
|
- completed: 已完成
|
|
|
|
- **核心功能**:
|
|
- 競賽創建與管理
|
|
- 參賽報名
|
|
- 評審分配
|
|
- 評分系統
|
|
- 獎項頒發
|
|
- 結果統計
|
|
|
|
### 3. 評審系統
|
|
- **評分維度**:
|
|
- 創新性 (Innovation)
|
|
- 技術性 (Technical)
|
|
- 實用性 (Usability)
|
|
- 展示效果 (Presentation)
|
|
- 影響力 (Impact)
|
|
|
|
- **評分範圍**: 1-10 分
|
|
- **評分權重**: 可自定義
|
|
- **評分統計**: 自動計算平均分
|
|
|
|
### 4. 團隊管理
|
|
- **團隊結構**:
|
|
- 隊長 (Leader)
|
|
- 成員 (Member)
|
|
- 角色分配
|
|
|
|
- **核心功能**:
|
|
- 團隊創建與管理
|
|
- 成員邀請與管理
|
|
- 團隊統計分析
|
|
- 團隊競賽參與
|
|
|
|
### 5. 應用管理
|
|
- **應用類型**:
|
|
- 機器學習應用
|
|
- 自然語言處理
|
|
- 計算機視覺
|
|
- 數據分析
|
|
- 自動化工具
|
|
|
|
- **核心功能**:
|
|
- 應用提交
|
|
- 應用展示
|
|
- 評分統計
|
|
- 用戶互動
|
|
|
|
### 6. 提案管理
|
|
- **提案內容**:
|
|
- 問題陳述
|
|
- 解決方案
|
|
- 預期影響
|
|
- 附件支持
|
|
|
|
- **提案狀態**:
|
|
- draft: 草稿
|
|
- submitted: 已提交
|
|
- under_review: 審核中
|
|
- approved: 已批准
|
|
- rejected: 已拒絕
|
|
|
|
### 7. 獎項系統
|
|
- **獎項類型**:
|
|
- 金獎 (Gold)
|
|
- 銀獎 (Silver)
|
|
- 銅獎 (Bronze)
|
|
- 人氣獎 (Popular)
|
|
- 創新獎 (Innovation)
|
|
- 技術獎 (Technical)
|
|
- 自定義獎項 (Custom)
|
|
|
|
- **獎項類別**:
|
|
- 創新性 (Innovation)
|
|
- 技術性 (Technical)
|
|
- 實用性 (Practical)
|
|
- 人氣 (Popular)
|
|
- 團隊合作 (Teamwork)
|
|
- 解決方案 (Solution)
|
|
- 創意 (Creativity)
|
|
|
|
### 8. AI 助手系統
|
|
- **功能特色**:
|
|
- 智能問答
|
|
- 操作指導
|
|
- 快速問題
|
|
- 會話管理
|
|
|
|
- **技術實現**:
|
|
- DeepSeek API 集成
|
|
- 上下文管理
|
|
- 會話持久化
|
|
|
|
## 📊 資料庫設計
|
|
|
|
### 核心表結構
|
|
|
|
#### 用戶相關表
|
|
- **users**: 用戶基本資訊
|
|
- **user_favorites**: 用戶收藏
|
|
- **user_likes**: 用戶按讚
|
|
- **user_views**: 用戶瀏覽記錄
|
|
- **user_ratings**: 用戶評分
|
|
|
|
#### 競賽相關表
|
|
- **competitions**: 競賽基本資訊
|
|
- **competition_rules**: 競賽規則
|
|
- **competition_award_types**: 獎項類型
|
|
- **competition_judges**: 評審分配
|
|
- **competition_apps**: 參賽應用
|
|
- **competition_teams**: 參賽團隊
|
|
- **competition_proposals**: 參賽提案
|
|
|
|
#### 評審相關表
|
|
- **judges**: 評審基本資訊
|
|
- **app_judge_scores**: 應用評分
|
|
- **proposal_judge_scores**: 提案評分
|
|
|
|
#### 團隊相關表
|
|
- **teams**: 團隊基本資訊
|
|
- **team_members**: 團隊成員
|
|
|
|
#### 應用相關表
|
|
- **apps**: 應用基本資訊
|
|
- **proposals**: 提案基本資訊
|
|
- **awards**: 獎項記錄
|
|
|
|
#### 系統相關表
|
|
- **chat_sessions**: 聊天會話
|
|
- **chat_messages**: 聊天訊息
|
|
- **ai_assistant_configs**: AI 配置
|
|
- **system_settings**: 系統設定
|
|
- **activity_logs**: 活動日誌
|
|
|
|
### 統計視圖
|
|
- **user_statistics**: 用戶統計
|
|
- **app_statistics**: 應用統計
|
|
- **competition_statistics**: 競賽統計
|
|
|
|
### 觸發器
|
|
- **calculate_app_total_score**: 應用評分總分計算
|
|
- **calculate_proposal_total_score**: 提案評分總分計算
|
|
|
|
## 🔧 開發環境設置
|
|
|
|
### 1. 環境要求
|
|
- Node.js 18+
|
|
- pnpm
|
|
- MySQL 8.0+
|
|
- Git
|
|
|
|
### 2. 安裝步驟
|
|
```bash
|
|
# 克隆專案
|
|
git clone <repository-url>
|
|
cd ai-showcase-platform
|
|
|
|
# 安裝依賴
|
|
pnpm install
|
|
|
|
# 設置環境變數
|
|
cp env.example .env.local
|
|
|
|
# 執行資料庫遷移
|
|
pnpm run migrate
|
|
|
|
# 測試資料庫連接
|
|
pnpm run test:db
|
|
|
|
# 啟動開發服務器
|
|
pnpm run dev
|
|
```
|
|
|
|
### 3. 環境變數配置
|
|
```env
|
|
# 資料庫配置
|
|
DB_HOST=mysql.theaken.com
|
|
DB_PORT=33306
|
|
DB_NAME=db_AI_Platform
|
|
DB_USER=AI_Platform
|
|
DB_PASSWORD=Aa123456
|
|
|
|
# DeepSeek API 配置
|
|
NEXT_PUBLIC_DEEPSEEK_API_KEY=your_api_key
|
|
NEXT_PUBLIC_DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
|
|
|
|
# JWT 配置
|
|
JWT_SECRET=your_jwt_secret
|
|
JWT_EXPIRES_IN=7d
|
|
```
|
|
|
|
## 📁 專案結構
|
|
|
|
```
|
|
ai-showcase-platform/
|
|
├── app/ # Next.js App Router
|
|
│ ├── admin/ # 管理員頁面
|
|
│ ├── competition/ # 競賽頁面
|
|
│ ├── judge-scoring/ # 評審頁面
|
|
│ └── register/ # 註冊頁面
|
|
├── components/ # React 組件
|
|
│ ├── admin/ # 管理員組件
|
|
│ ├── auth/ # 認證組件
|
|
│ ├── competition/ # 競賽組件
|
|
│ ├── reviews/ # 評分組件
|
|
│ └── ui/ # UI 組件庫
|
|
├── contexts/ # React Context
|
|
│ ├── auth-context.tsx # 認證上下文
|
|
│ └── competition-context.tsx # 競賽上下文
|
|
├── hooks/ # 自定義 Hooks
|
|
├── lib/ # 工具庫
|
|
│ ├── database.ts # 資料庫連接
|
|
│ ├── models.ts # 資料模型
|
|
│ └── services/ # 服務層
|
|
├── types/ # TypeScript 類型
|
|
├── scripts/ # 腳本文件
|
|
├── public/ # 靜態資源
|
|
└── styles/ # 樣式文件
|
|
```
|
|
|
|
## 🚀 部署指南
|
|
|
|
### 1. 生產環境準備
|
|
- 設置生產資料庫
|
|
- 配置環境變數
|
|
- 設置文件上傳目錄
|
|
- 配置反向代理
|
|
|
|
### 2. 部署步驟
|
|
```bash
|
|
# 構建專案
|
|
pnpm run build
|
|
|
|
# 啟動生產服務器
|
|
pnpm run start
|
|
```
|
|
|
|
### 3. 監控與維護
|
|
- 資料庫備份
|
|
- 日誌監控
|
|
- 性能監控
|
|
- 錯誤追蹤
|
|
|
|
## 🔍 功能特色
|
|
|
|
### 1. 響應式設計
|
|
- 移動端適配
|
|
- 平板端優化
|
|
- 桌面端完整功能
|
|
|
|
### 2. 無障礙支持
|
|
- 鍵盤導航
|
|
- 屏幕閱讀器支持
|
|
- 高對比度模式
|
|
|
|
### 3. 國際化支持
|
|
- 繁體中文界面
|
|
- 多語言擴展準備
|
|
|
|
### 4. 性能優化
|
|
- 代碼分割
|
|
- 圖片優化
|
|
- 緩存策略
|
|
|
|
## 📈 未來規劃
|
|
|
|
### 短期目標
|
|
- 完善評審系統
|
|
- 優化用戶體驗
|
|
- 增加數據分析功能
|
|
|
|
### 中期目標
|
|
- 移動端應用
|
|
- 實時通知系統
|
|
- 高級搜索功能
|
|
|
|
### 長期目標
|
|
- 多租戶支持
|
|
- 微服務架構
|
|
- 人工智能集成
|
|
|
|
## 🤝 貢獻指南
|
|
|
|
### 1. 代碼規範
|
|
- TypeScript 嚴格模式
|
|
- ESLint 規則遵循
|
|
- Prettier 格式化
|
|
|
|
### 2. 提交規範
|
|
- 清晰的提交信息
|
|
- 功能分支開發
|
|
- 代碼審查流程
|
|
|
|
### 3. 測試要求
|
|
- 單元測試
|
|
- 集成測試
|
|
- 端到端測試
|
|
|
|
## 📞 技術支援
|
|
|
|
如有任何技術問題,請聯繫:
|
|
- 技術團隊
|
|
- 項目維護者
|
|
- 查看專案文檔
|
|
|
|
---
|
|
|
|
**版本**: 1.0.0
|
|
**最後更新**: 2024年12月
|
|
**維護者**: 強茂集團技術團隊
|