一个功能强大的在线刷题学习工具,支持智能导入、错题本、学习计划等功能。
- 📚 题库管理:创建和管理多个题库,支持章节分类
- 🤖 智能导入:AI驱动的题目解析,支持多种文本格式
- 📝 多种学习模式:快速刷题、深度学习、测试模式
- ❌ 错题本系统:自动收集错题,智能复习推荐
- 📊 学习统计:详细的学习进度和正确率分析
- 📅 学习计划:制定个性化学习计划,跟踪学习进度
- 💾 本地存储:所有数据保存在本地,保护隐私
- 📱 响应式设计:完美适配桌面和移动设备
- Node.js 16.0 或更高版本
- 现代浏览器(Chrome、Firefox、Safari、Edge)
-
克隆项目
git clone <repository-url> cd quiz-app
-
安装依赖
npm install
-
启动应用
npm start
应用将自动在浏览器中打开
http://localhost:5173
- 开发模式:
npm run dev - 构建生产版本:
npm run build - 预览生产版本:
npm run preview - 代码检查:
npm run lint
- 点击"首页"进入主界面
- 点击"新建题库"按钮
- 填写题库名称和描述
- 创建章节来组织题目
- 选择目标章节
- 点击"智能导入助手"按钮
- 粘贴题目文本(支持多种格式)
- 系统自动解析并导入题目
- 选择学习模式:
- 快速模式:快速刷题,适合复习
- 学习模式:详细学习,显示解析
- 测试模式:模拟考试环境
- 答题后查看详细解析
- 错题自动加入错题本
- 进入"错题本"页面
- 查看错题统计和分析
- 选择复习模式进行针对性练习
- 掌握后的题目会自动标记
- 进入"设置" → "学习计划"
- 创建个性化学习计划
- 设置目标和提醒
- 跟踪学习进度
- 前端框架:React 19 + TypeScript
- UI组件库:Ant Design 5
- 状态管理:Zustand
- 路由管理:React Router 7
- 构建工具:Vite 7
- 数据存储:IndexedDB
- 样式方案:CSS Modules + Ant Design
quiz-app/
├── public/ # 静态资源
├── src/
│ ├── components/ # React组件
│ │ ├── Import/ # 导入相关组件
│ │ ├── Question/ # 题目相关组件
│ │ ├── Study/ # 学习模式组件
│ │ ├── Statistics/ # 统计分析组件
│ │ └── ...
│ ├── pages/ # 页面组件
│ ├── stores/ # 状态管理
│ ├── types/ # TypeScript类型定义
│ ├── utils/ # 工具函数
│ └── main.tsx # 应用入口
├── package.json
└── README.md
- 在
src/components/下创建新组件 - 在
src/types/中定义相关类型 - 在
src/stores/中添加状态管理 - 在
src/utils/中添加工具函数
项目使用 IndexedDB 进行本地数据存储:
- 题库数据:
questionBanks - 章节数据:
chapters - 题目数据:
questions - 答题记录:
answerRecords - 错题数据:
wrongQuestions - 学习计划:
studyPlans
- 使用 TypeScript 进行类型检查
- 遵循 React Hooks 最佳实践
- 使用 Ant Design 组件保持UI一致性
- 添加适当的错误处理和加载状态
-
应用无法启动
- 检查 Node.js 版本是否符合要求
- 删除
node_modules文件夹,重新运行npm install
-
数据丢失
- 检查浏览器是否清除了本地存储
- 使用"数据备份"功能定期备份数据
-
导入功能异常
- 检查题目格式是否正确
- 确保网络连接正常(AI解析需要网络)
-
性能问题
- 清理浏览器缓存
- 检查题库大小,建议单个题库不超过1000题
- 题库和章节管理系统
- 智能题目导入(AI解析 + OCR识别)
- 多种学习模式(背题/快刷/刷题/测试)
- 完整的错题本系统
- 学习统计和进度分析
- 学习计划管理
- PWA支持(可安装为应用)
- 响应式设计(支持移动端)
- 数据导入导出功能
- 构建系统: 完全修复,无任何错误 ✅
- AI集成: 支持OpenAI、硅基流动等多种服务
- 智能解析: 自动章节检测和题目分类
- 类型安全: 完整的TypeScript类型定义
- 性能优化: 代码分割和懒加载
MIT License
欢迎提交 Issue 和 Pull Request!
如有问题,请通过以下方式联系:
- 提交 GitHub Issue
- 查看项目文档获取详细帮助
开始您的智能学习之旅! 🚀🎓