1. 用户认证与权限(Token / RBAC)
注册:提交用户名密码,后端创建用户并返回 token。
登录:提交账号密码校验,返回 token 与用户信息(包含角色)。
登录状态持久化:Token 与用户信息写入 localStorage,刷新不丢登录态。
路由守卫:
未登录访问需要登录的页面 → 重定向到登录页;
管理后台按角色限制(管理员才可进入)。
2. 题目分类与检索
分类展示:按分类渲染入口,用户可进入对应分类练习。
关键词搜索:支持题干关键词检索,并在首页先展示搜索结果,用户确认后再进入答题页。
(扩展性)接口预留分页/筛选参数,后续可很容易加上分页组件。
3. 在线答题与即时判题
答题模式(UI 层面):新题/错题/混合(当前实现了与错题本、收藏的结合)。
题目动态渲染:题目对象驱动渲染题干、代码块(如有)与选项。
作答与判题:
用户选择选项后记录答案;
交卷后自动比较 userAnswer 与 correctAnswer;
即时展示答题统计(答对、答错、未答、正确率)。
答题卡与滚动定位:答题卡按钮可跳转到对应题目区域。
4. 错题本(归档 / 复练 / 移除)
自动归档:交卷后把答错题加入错题本(按用户维度存储)。
再练一次:从错题本进入答题页进行复练。
移除管理:支持从错题本删除记录。
5. 收藏(个性化练习)
收藏/取消收藏:答题卡片提供收藏操作(基于用户存储收藏表)。
收藏列表展示:收藏题目可直接跳转到练习入口。
适配“个性化学习管理”的课题要求。
6. 练习历史(成绩与时间)
记录维度:每次练习保存得分、总题数、用时、时间戳等信息。
历史查询:按时间倒序展示;支持按日期分组(时间轴样式)。
7. 学习统计与可视化(ECharts)
正确率趋势:结合历史记录按时间生成正确率曲线/趋势。
分类掌握情况:根据错题本统计各分类错题数量。
图表视觉风格与整体 UI 保持一致,提升学习反馈体验。
8. 管理员后台(题目与分类 CRUD + 安全控制)
分类管理:新增/编辑/删除分类。
题目管理:
列表展示题目(可按分类筛选、关键词过滤);
新增/编辑/删除题目(包含选项与正确答案)。
权限控制:后台入口在路由守卫中按角色限制,保证数据规范与安全性。
本课题旨在设计与实现一个基于 Vue3 的在线刷题系统,采用前后端分离架构,前端以 Vue3、Vue Router、Pinia 和 Axios 为核心技术,系统首先实现用户注册与登录功能,并通过 Token 机制完成身份认证与登录状态持久化管理,利用路由守卫实现未登录拦截及基于角色的访问控制。在功能实现方面,系统支持题目分类展示与管理,用户可根据不同类别浏览题目,并通过关键词搜索与分页加载机制高效检索所需内容。在线答题模块支持多种题型的动态渲染,用户作答后系统自动进行判题处理并即时反馈结果,同时生成答题统计数据。针对错误题目,系统自动归档至错题本,支持重复练习与移除管理,并提供题目收藏功能以便用户进行个性化学习管理。系统还将记录用户每次练习的成绩与时间信息,形成历史记录模块,并基于历史数据进行统计分析,通过 ECharts 实现正确率趋势、分类正确率等数据可视化展示,增强学习反馈效果。此外,系统设计管理员后台模块,实现题目的新增、编辑、删除及分类维护功能,并通过角色权限控制保障系统安全性与数据规范性。整体系统在保证功能完整性的同时注重模块化设计与组件复用,提高代码可维护性与扩展性,体现现代前端工程化开发思想与单页面应用架构优势。