一个基于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
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
# 其他配置...npm run dev项目将在 http://localhost:5173 启动(如果端口被占用会自动选择其他端口)。
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 链接。
npm run previewnpm 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_COMPLETE_SETUP.md- 完整设置指南GOOGLE_OAUTH_FINAL_GUIDE.md- 最终配置指南AUTH_IMPLEMENTATION_SUMMARY.md- 认证实现总结
QuizForge支持多个AI服务提供商的API Key管理,详细说明请参考:
API_KEY_GUIDE.md- API Key管理功能完整指南API_KEY_USAGE_EXAMPLES.md- 使用示例和最佳实践
-
DeepSeek (深度求索)
- 官网: https://platform.deepseek.com
- 模型: deepseek-chat, deepseek-reasoner
-
月之暗面 (Moonshot AI / Kimi)
- 官网: https://platform.moonshot.cn
- 模型: moonshot-v1-8k, moonshot-v1-32k
-
阿里百炼 (通义千问 / Qwen)
- 官网: https://dashscope.aliyun.com
- 模型: qwen-turbo, qwen-plus, qwen-max
-
自定义API
- 支持任何兼容OpenAI API格式的服务
- 本地存储: localStorage (浏览器)
- 远程存储: Redis (跨设备同步)
- 同步方式: Google登录后自动同步
- 安全性: 用户数据隔离,API Key加密存储
- 首页: 平台介绍和快速开始
- 题目生成: AI智能生成面试题目
- 测试页面: 在线答题和实时评分
- 结果分析: 详细的答题报告和建议
- 错题回顾: 专门的错题练习
- 数据分析: 学习进度和统计图表
- 题目管理: 自定义题目库管理
- API Key管理: 管理多个AI服务商的API密钥
项目支持明暗两种主题模式,用户可以根据偏好自由切换。
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您遇到任何问题或有功能建议,请在 Issues 页面提交。
- 项目维护者: [Chester Zhao]
- 邮箱: [zhaomo0823@gmail.com]
⭐ 如果这个项目对您有帮助,请给我们一个星标!