整合資料庫、完成登入註冊忘記密碼功能
This commit is contained in:
371
PROJECT_ANALYSIS.md
Normal file
371
PROJECT_ANALYSIS.md
Normal file
@@ -0,0 +1,371 @@
|
||||
# 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月
|
||||
**維護者**: 強茂集團技術團隊
|
Reference in New Issue
Block a user