9.4 KiB
9.4 KiB
🚀 AI展示平台 (AI Showcase Platform)
強茂集團企業內部AI應用展示、競賽管理和評審系統
📖 專案概述
AI展示平台是一個企業內部的AI應用展示、競賽管理和評審系統,旨在促進AI技術的創新與應用。平台提供完整的競賽管理流程,從競賽創建、作品提交、評審評分到頒獎的完整閉環,並整合智能AI助手為用戶提供即時指導。
🎯 專案目標
- 建立企業內部AI技術創新平台
- 促進跨部門AI技術交流與合作
- 提供完整的競賽管理和評審系統
- 整合AI助手提升用戶體驗
✨ 核心功能
🏆 競賽管理系統
- 多種競賽類型: 個人賽、團隊賽、提案賽、混合賽
- 完整競賽流程: 創建 → 報名 → 提交 → 評審 → 頒獎
- 動態評分系統: 根據競賽規則動態生成評分項目
- 權重計算: 支援不同評分項目的權重設定
👥 用戶管理系統
- 角色權限: 一般用戶(user) / 開發者(developer) / 管理員(admin)
- 個人中心: 收藏管理、瀏覽記錄、參賽記錄
- 互動功能: 按讚(每日限制)、收藏、評論
🏅 獎項系統
- 獎項類型: 金獎/銀獎/銅獎、最佳創新獎、最佳技術獎、人氣獎
- 獎項分類: 創新類、技術類、實用類、人氣類、團隊協作類
- 排行榜: 人氣排行榜、得獎作品展示
🤖 AI智能助手
- 即時對話: 與AI助手進行自然語言對話
- 智能回答: 基於DeepSeek API的智能回應
- 快速問題: 提供相關問題的快速選擇
- 上下文記憶: 保持對話的連續性
📊 管理員後台
- 用戶管理: 用戶列表、權限管理、資料編輯
- 競賽管理: 競賽創建、狀態管理、參賽者管理
- 評審管理: 評審帳號、評分進度追蹤
- 數據分析: 競賽統計、用戶活躍度、應用熱度分析
🛠 技術架構
前端技術棧
- 框架: Next.js 15.2.4 (App Router)
- 語言: TypeScript 5
- UI庫:
- Radix UI (無障礙組件)
- shadcn/ui (設計系統)
- Tailwind CSS (樣式框架)
- 狀態管理: React Context API
- 表單處理: React Hook Form + Zod
- 圖表: Recharts
- AI整合: DeepSeek API
開發工具
- 包管理器: pnpm
- 代碼品質: ESLint + TypeScript
- 樣式處理: PostCSS + Tailwind CSS
- 圖標: Lucide React
📁 專案結構
ai-showcase-platform/
├── app/ # Next.js App Router
│ ├── admin/ # 管理員頁面
│ │ ├── page.tsx # 管理員主頁
│ │ ├── scoring/ # 評分管理
│ │ └── scoring-test/ # 評分測試
│ ├── competition/ # 競賽頁面
│ ├── judge-scoring/ # 評審評分頁面
│ ├── register/ # 註冊頁面
│ ├── layout.tsx # 根布局
│ └── page.tsx # 首頁
├── components/ # React 組件
│ ├── admin/ # 管理員專用組件
│ ├── auth/ # 認證相關組件
│ ├── competition/ # 競賽相關組件
│ ├── ui/ # 通用UI組件
│ └── chat-bot.tsx # AI智能助手
├── contexts/ # React Context
│ ├── auth-context.tsx # 認證狀態管理
│ └── competition-context.tsx # 競賽狀態管理
├── hooks/ # 自定義 Hooks
├── lib/ # 工具函數
├── types/ # TypeScript 類型定義
└── public/ # 靜態資源
🚀 快速開始
環境要求
- Node.js 18+
- pnpm 8+
安裝步驟
- 克隆專案
git clone <repository-url>
cd ai-showcase-platform
- 安裝依賴
pnpm install
- 環境配置
# 複製環境變數範例
cp .env.example .env.local
# 編輯環境變數
# 設定 DeepSeek API 金鑰
NEXT_PUBLIC_DEEPSEEK_API_KEY=your_deepseek_api_key_here
NEXT_PUBLIC_DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
- 啟動開發服務器
pnpm dev
- 開啟瀏覽器
http://localhost:3000
🔧 環境配置
DeepSeek API 設定
-
取得 API 金鑰
- 前往 DeepSeek 官網
- 註冊或登入帳號
- 在控制台中生成 API 金鑰
-
設定環境變數
# .env.local
NEXT_PUBLIC_DEEPSEEK_API_KEY=your_deepseek_api_key_here
NEXT_PUBLIC_DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
📖 使用指南
一般用戶
- 註冊/登入: 使用企業郵箱註冊帳號
- 瀏覽應用: 查看AI應用展示和競賽資訊
- 參與互動: 收藏喜歡的應用、參與投票
- 查看排行榜: 瀏覽人氣排行榜和得獎作品
開發者
- 提交作品: 在競賽期間提交AI應用
- 管理作品: 編輯、更新作品資訊
- 查看評分: 查看評審評分和意見
- 參與競賽: 加入團隊或個人參賽
管理員
- 競賽管理: 創建、編輯、刪除競賽
- 評審管理: 管理評審團成員和權限
- 評分管理: 手動輸入評分或查看評審評分
- 數據分析: 查看競賽統計和用戶分析
AI助手使用
- 開啟對話: 點擊右下角聊天按鈕
- 提問: 輸入問題或選擇快速問題
- 獲取幫助: AI助手提供系統使用指導
- 持續對話: 保持上下文進行深入交流
🏗 開發指南
新增組件
# 在 components 目錄下創建新組件
touch components/MyComponent.tsx
新增頁面
# 在 app 目錄下創建新頁面
mkdir app/my-page
touch app/my-page/page.tsx
狀態管理
// 使用 Context Hook
import { useAuth } from "@/contexts/auth-context"
import { useCompetition } from "@/contexts/competition-context"
const { user, login, logout } = useAuth()
const { competitions, addCompetition } = useCompetition()
樣式開發
// 使用 Tailwind CSS
<div className="bg-white rounded-lg shadow-md p-6">
<h2 className="text-2xl font-bold text-gray-900">標題</h2>
</div>
📊 數據模型
用戶模型
interface User {
id: string
name: string
email: string
avatar?: string
department: string
role: "user" | "developer" | "admin"
joinDate: string
favoriteApps: string[]
recentApps: string[]
totalLikes: number
totalViews: number
}
競賽模型
interface Competition {
id: string
name: string
year: number
month: number
startDate: string
endDate: string
status: "upcoming" | "active" | "judging" | "completed"
description: string
type: "individual" | "team" | "mixed"
judges: string[]
participatingApps: string[]
participatingTeams: string[]
rules: CompetitionRule[]
awardTypes: CompetitionAwardType[]
evaluationFocus: string
maxTeamSize?: number
}
評審模型
interface Judge {
id: string
name: string
title: string
department: string
expertise: string[]
avatar?: string
}
interface JudgeScore {
judgeId: string
appId: string
scores: {
innovation: number
technical: number
usability: number
presentation: number
impact: number
}
comments: string
submittedAt: string
}
🚀 部署指南
開發環境
# 啟動開發服務器
pnpm dev
# 建置專案
pnpm build
# 啟動生產服務器
pnpm start
生產環境
# 使用 Vercel 部署
vercel --prod
# 或使用 Docker
docker build -t ai-showcase-platform .
docker run -p 3000:3000 ai-showcase-platform
🔒 安全考量
- API密鑰安全: 環境變數存儲敏感資訊
- 用戶權限: 完整的角色權限控制
- 數據驗證: 使用 Zod 進行表單驗證
- XSS防護: 輸入內容安全處理
📈 性能優化
- 圖片優化: Next.js 內建圖片優化
- 代碼分割: 自動代碼分割和懶加載
- 快取策略: 靜態資源快取
- CDN加速: 靜態資源CDN分發
🤝 貢獻指南
- Fork 專案
- 創建功能分支:
git checkout -b feature/AmazingFeature
- 提交變更:
git commit -m 'Add some AmazingFeature'
- 推送到分支:
git push origin feature/AmazingFeature
- 開啟 Pull Request
📝 更新日誌
v1.0.0 (2025-01)
- ✨ 初始版本發布
- 🏆 完整的競賽管理系統
- 🤖 AI智能助手整合
- 📊 管理員後台功能
- 👥 用戶權限管理
📄 授權條款
本專案採用 MIT 授權條款 - 詳見 LICENSE 檔案
📞 聯絡資訊
- 專案負責人: 強茂集團應用系統部
- 技術支援: 請透過企業內部管道聯繫
- 問題回報: 請在企業內部系統提交問題
🙏 致謝
- Next.js - React 框架
- Tailwind CSS - CSS 框架
- Radix UI - 無障礙組件
- DeepSeek - AI API 服務
- Lucide - 圖標庫
強茂集團 AI 展示平台 - 促進AI技術創新與應用 🚀