整合資料庫、完成登入註冊忘記密碼功能

This commit is contained in:
2025-09-09 12:00:22 +08:00
parent af88c0f037
commit 32b19e9a0f
85 changed files with 11672 additions and 2350 deletions

371
PROJECT_ANALYSIS.md Normal file
View 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月
**維護者**: 強茂集團技術團隊