Skip to content

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuizForge - AI自动出题面试自测平台

一个基于AI的智能面试题目生成和自测平台,帮助用户准备技术面试和提升专业技能。

🚀 功能特性

  • AI智能出题: 基于不同技术领域自动生成面试题目
  • 多AI服务商支持: 支持DeepSeek、月之暗面(Kimi)、阿里百炼(通义千问)等多个AI服务
  • API Key管理: 安全的API Key管理系统,支持多Key配置和跨设备同步
  • 多种题型支持: 选择题、编程题、开放性问题等
  • 个性化学习: 根据答题情况提供智能学习建议
  • 错题回顾: 专门的错题页面帮助巩固薄弱知识点
  • 数据分析: 详细的答题统计和学习进度分析
  • Google OAuth: 安全的用户认证系统
  • Redis数据同步: 用户数据跨设备实时同步
  • 响应式设计: 支持桌面端和移动端
  • 暗色模式: 护眼的深色主题支持

🛠️ 技术栈

  • 前端框架: React 18 + TypeScript
  • 构建工具: Vite
  • UI组件: Radix UI + Tailwind CSS
  • 状态管理: React Context
  • 认证系统: Better Auth + Google OAuth
  • 数据存储: Redis + localStorage
  • 表单处理: React Hook Form + Zod
  • 图表组件: Recharts
  • 通知系统: Sonner

📋 系统要求

  • Node.js >= 16.0.0
  • npm >= 8.0.0

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd quizforge
```text

### 2. 安装依赖

```bash
npm install
```text

### 3. 环境配置

复制环境变量模板文件:

```bash
cp .env.example .env

编辑 .env 文件,配置必要的环境变量:

# Google OAuth 配置
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_GOOGLE_CLIENT_SECRET=your_google_client_secret

# Redis 配置(用于数据同步)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
REDIS_DB=2

# 其他配置...

4. 启动开发服务器

npm run dev

项目将在 http://localhost:5173 启动(如果端口被占用会自动选择其他端口)。

5. 构建生产版本

npm run build

自定义站点图标

已在 index.html 中配置多尺寸站点图标引用:

site-icon.png            (回退)
site-icon-32.png         (favicon 32x32)
site-icon-180.png        (Apple Touch Icon)
site-icon-192.png        (Android / PWA 推荐)
site-icon.svg            (可选,用于 mask-icon)

请将上述文件放入 public/ 目录。例如:public/site-icon-32.png

如果你仅有一张大图(例如 768x768 PNG),可以用以下命令快速生成不同尺寸:

magick source.png -resize 32x32 public/site-icon-32.png \
  -resize 180x180 public/site-icon-180.png \
  -resize 192x192 public/site-icon-192.png
cp source.png public/site-icon.png

没有安装 ImageMagick 时,可使用 macOS 预览另存尺寸或在线转换工具。SVG 版本命名为 site-icon.svg 后放入 public/ 可启用 pinned tab / mask-icon 支持。

后续若添加 PWA,可创建 public/manifest.webmanifest 并在 <head> 中取消注释 manifest 链接。

6. 预览生产版本

npm run preview

🔧 可用脚本

  • npm run dev - 启动开发服务器
  • npm run build - 构建生产版本
  • npm run lint - 运行ESLint代码检查
  • npm run preview - 预览生产版本
  • npm run test:redis - 测试Redis连接和数据同步
  • npm run test:oauth - 测试Google OAuth配置
  • npm run setup:oauth - OAuth设置向导

📁 项目结构

src/
├── components/          # React组件
│   ├── auth/           # 认证相关组件
│   ├── ui/             # 基础UI组件
│   └── ...             # 其他功能组件
├── contexts/           # React Context
├── lib/                # 工具库
├── utils/              # 工具函数
├── App.tsx             # 主应用组件
└── main.tsx            # 应用入口

🔐 Google OAuth 配置

项目集成了Google OAuth认证系统。详细配置步骤请参考:

  • GOOGLE_OAUTH_COMPLETE_SETUP.md - 完整设置指南
  • GOOGLE_OAUTH_FINAL_GUIDE.md - 最终配置指南
  • AUTH_IMPLEMENTATION_SUMMARY.md - 认证实现总结

🔑 API Key 管理

QuizForge支持多个AI服务提供商的API Key管理,详细说明请参考:

  • API_KEY_GUIDE.md - API Key管理功能完整指南
  • API_KEY_USAGE_EXAMPLES.md - 使用示例和最佳实践

支持的AI服务商

  1. DeepSeek (深度求索)

  2. 月之暗面 (Moonshot AI / Kimi)

  3. 阿里百炼 (通义千问 / Qwen)

  4. 自定义API

    • 支持任何兼容OpenAI API格式的服务

数据同步

  • 本地存储: localStorage (浏览器)
  • 远程存储: Redis (跨设备同步)
  • 同步方式: Google登录后自动同步
  • 安全性: 用户数据隔离,API Key加密存储

📱 主要页面

  • 首页: 平台介绍和快速开始
  • 题目生成: AI智能生成面试题目
  • 测试页面: 在线答题和实时评分
  • 结果分析: 详细的答题报告和建议
  • 错题回顾: 专门的错题练习
  • 数据分析: 学习进度和统计图表
  • 题目管理: 自定义题目库管理
  • API Key管理: 管理多个AI服务商的API密钥

🎨 主题支持

项目支持明暗两种主题模式,用户可以根据偏好自由切换。

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🐛 问题反馈

如果您遇到任何问题或有功能建议,请在 Issues 页面提交。

📞 联系我们


⭐ 如果这个项目对您有帮助,请给我们一个星标!

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages