# 基于HTML5的在线答题系统后端
## 此项目为广东海洋大学软件工程系2019届毕业设计课题--基于HTML5的在线答题系统的设计与实现
## 基于HTML5的在线答题系统前端:[https://github.com/c10342/html5-online-answer-page](https://github.com/c10342/html5-online-answer-page)
## QQ好友或微信好友分享页面:[https://github.com/c10342/html5-online-answer-share](https://github.com/c10342/html5-online-answer-share)
### 有不明白的地方可添加微信(13427491053)或QQ(1376023740)进行咨询
## Project setup(安装步骤)
```
npm install
```
### Compiles and hot-reloads for development(运行后台)
```
npm run server
```
## 用例描述
<table style='width:100%' class="table table-bordered table-striped">
<tr>
<td>用例名称</td>
<td>描述</td>
</tr>
<tr><td>登录</td><td>用户输入邮箱和密码登录在线答题系统</td></tr>
<tr><td>第三方登录</td><td>用户点击github登录,输入github账号密码并同意授权后登录在线答题系统</td></tr>
<tr><td>注册</td><td>用户输入姓名,邮箱,验证码,密码注册账号</td></tr>
<tr><td>修改用户名</td><td>用户输入新的用户名修改用户名</td></tr>
<tr><td>修改密码</td><td>用户输入旧的密码和新的密码修改密码</td></tr>
<tr><td>查看用户信息</td><td>用户查看自己的信息</td></tr>
<tr><td>添加试卷</td><td>用户添加一份试卷(包括试卷名称,试题,选项,答案),添加方式有上传文件和手动输入</td></tr>
<tr><td>删除试卷</td><td>用户选中自己已经发布的试卷后删除试卷</td></tr>
<tr><td>查询试卷</td><td>用户输入的查询条件查询试卷(包括发布时间,发布者用户名,试卷标题)</td></tr>
<tr><td>填写试卷</td><td>用户选择试卷后填写试卷内容</td></tr>
<tr><td>修改试卷</td><td>用户选中自己已经发布的试卷后修改试卷</td></tr>
<tr><td>查询个人错题库</td><td>用户输入查询条件查询个人错题(查询条件包括错题标题,试题类型,创建时间)</td></tr>
<tr><td>查询试题库</td><td>用户输入查询条件查询试题库(查询条件包括试题标题,试题类型,创建时间)</td></tr>
<tr><td>添加试题</td><td>用户手动添加试题,添加方式包括2种,一是上传文件添加,二是手动添加</td></tr>
<tr><td>删除试题</td><td>用户选中一道试题后,删除试题</td></tr>
<tr><td>修改试题</td><td>用户选择一道试题后,输入修改内容,然后修改内容</td></tr>
<tr><td>随机生成练习题</td><td>用户输入所需要生成的题数,然后生成练习题</td></tr>
<tr><td>从试题库选择试题创建试卷</td><td>用户点击是题库中的试题,试题会自动添加到试卷中,用户点击确定后,生成试卷</td></tr>
<tr><td>评论试题</td><td>用户选择一份已经完成了的试卷,然后输入评论内容进行评论</td></tr>
<tr><td>查询评论</td><td>用户可以查询自己所发表的评论和其他人对自己发布的试卷的评论</td></tr>
<tr><td>收藏试卷</td><td>用户选择一份试卷后,点击收藏,即可收藏试卷</td></tr>
<tr><td>分享试卷给qq或者微信好友</td><td>用户选择一份自己已经发布的试卷,选择分享给qq好友或者微信好友</td></tr>
<tr><td>查询试卷的整体统计分析</td><td>用户输入查询条件(包括试卷标题,发布时间)查询试卷的统计分析情况</td></tr>
<tr><td>查询试卷每一道试题的统计分析</td><td>用户选择一份试卷后,查看每一道试题的统计分析情况</td></tr>
<tr><td>查询答题者答题详情</td><td>用户查看自己已经发布的试卷每一个答题者的答题详情</td></tr>
<tr><td>查询试题图表分析</td><td>用户选择一道试题后,查看该试题的图表分析情况</td></tr>
</table>
## 系统功能列表
<table style='width:100%' class="table table-bordered table-striped">
<tr>
<td>模块名称</td>
<td>简要描述</td>
</tr>
<tr>
<td rowspan="6">用户管理模块</td>
<td>用户和管理员的登录</td>
</tr>
<tr>
<td>第三方登录</td>
</tr>
<tr>
<td>邮箱SMTP服务注册</td>
</tr>
<tr>
<td>修改密码</td>
</tr>
<tr>
<td>修改用户名</td>
</tr>
<tr>
<td>查看用户信息功能</td>
</tr>
<tr>
<td rowspan="5">试卷管理模块</td>
<td>试卷查询</td>
</tr>
<tr>
<td>试卷增加</td>
</tr>
<tr>
<td>试卷修改</td>
</tr>
<tr>
<td>试卷添加</td>
</tr>
<tr>
<td>试卷填写</td>
</tr>
<tr>
<td rowspan="7">试题管理模块</td>
<td>个人错题库</td>
</tr>
<tr>
<td>试题库查询</td>
</tr>
<tr>
<td>试题添加</td>
</tr>
<tr>
<td>试题删除</td>
</tr>
<tr>
<td>试题修改</td>
</tr>
<tr>
<td>随机生成练习题</td>
</tr>
<tr>
<td>从试题库选择试题创建试卷功能</td>
</tr>
<tr>
<td rowspan="2">反馈模块</td>
<td>用户对试题的评论</td>
</tr>
<tr>
<td>用户查询评论</td>
</tr>
<tr>
<td rowspan="3">账号权限管理模块</td>
<td>管理员对普通用户账号进行删除</td>
</tr>
<tr>
<td>管理员查询普通用户信息</td>
</tr>
<tr>
<td>分配权限</td>
</tr>
<tr>
<td rowspan="3">收藏分享模块</td>
<td>试卷的收藏</td>
</tr>
<tr>
<td>试卷分享给QQ好友</td>
</tr>
<tr>
<td>试卷分享给微信好友</td>
</tr>
<tr>
<td rowspan="5">试卷统计分析模块</td>
<td>试卷的整体统计分析</td>
</tr>
<tr>
<td>试卷每一道试题的统计分析</td>
</tr>
<tr>
<td>自动批改答案</td>
</tr>
<tr>
<td>查看答题者答题详情</td>
</tr>
<tr>
<td>图表分析</td>
</tr>
<tr>
<td rowspan="7">其他功能模块</td>
<td>试卷的离线缓存</td>
</tr>
<tr>
<td>在线考试防作弊功能</td>
</tr>
<tr>
<td>pwa单页面应用功能</td>
</tr>
<tr>
<td>数据网络优先缓存策略</td>
</tr>
<tr>
<td>骨架屏应用技术</td>
</tr>
<tr>
<td>预渲染页面</td>
</tr>
<tr>
<td>文本检测功能</td>
</tr>
</table>
毕业设计—基于express,redis,mongodb在线答题系统后台.zip
需积分: 0 115 浏览量
更新于2023-08-03
收藏 5.08MB ZIP 举报
这是一个基于Node.js、Express、Redis和MongoDB技术栈构建的在线答题系统后台的毕业设计项目。这个项目展示了如何使用这些技术来实现一个功能完善的后端服务,为用户提供在线答题、成绩存储、用户管理等核心功能。
让我们深入了解每个技术在系统中的作用:
1. **Node.js**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以用JavaScript进行服务器端编程。在这个项目中,Node.js作为基础平台,提供了事件驱动、非阻塞I/O模型,使得后台服务能高效处理大量并发请求。
2. **Express**:Express是Node.js的一个框架,用于快速构建Web应用。它提供了一系列便捷的API,帮助开发者处理路由、中间件和HTTP请求响应。在这个在线答题系统中,Express负责接收前端发来的请求,根据路由执行相应的业务逻辑,并将结果返回给前端。
3. **Redis**:Redis是一个高性能的键值数据库,常用于缓存和实时数据存储。在这个项目中,Redis可能被用来存储用户的临时答题状态,比如未完成的题目或用户的得分,以提高数据读取速度和减少对MongoDB的频繁访问。
4. **MongoDB**:MongoDB是一个NoSQL文档型数据库,适合处理大量的结构化和半结构化数据。在这个在线答题系统中,MongoDB可能用于存储用户信息、题目库、答案以及用户完成的测试记录等持久化数据。
项目的具体实现可能包括以下关键部分:
- **用户模块**:处理用户的注册、登录、权限验证等功能。使用MongoDB存储用户信息,包括用户名、密码(加密存储)、角色等。
- **题目库模块**:存储和管理各种类型的题目,可能包含题目ID、类型(选择题、填空题等)、内容、选项、答案等字段。
- **答题模块**:用户可以选择进入不同的考试或练习,系统会从题目库中随机选取题目。Redis可以用来暂存用户答题状态,直到用户提交答案或者答题结束。
- **成绩计算模块**:根据用户提交的答案与正确答案比对,计算得分,更新到Redis和MongoDB中。
- **接口设计**:使用Express定义RESTful API,例如GET、POST、PUT和DELETE方法,以便前端通过HTTP请求与后端交互。
- **安全考虑**:应实现登录验证、CSRF防护、数据过滤等安全措施,防止恶意攻击。
- **错误处理和日志记录**:确保系统遇到问题时能优雅地处理异常,同时记录日志方便排查问题。
这个毕业设计项目不仅锻炼了开发者对Node.js、Express、Redis和MongoDB的综合运用能力,还涉及到前后端通信、数据安全、性能优化等多个方面,对于学习Web开发的初学者来说是一个很好的实践平台。通过这个项目,开发者可以深入理解如何构建一个完整的、具有实际应用价值的Web服务。
白话机器学习
- 粉丝: 1w+
- 资源: 7671
最新资源
- java项目之高校学生选课系统项目源代码.zip
- 小米15工程固件 可以用于修改参数 修复tee损坏 修复底层分区 会用的下载
- JSP+SQL学生考试成绩分析(源代码+论文)(2024pp).7z
- java项目之华奥汽车销售集团网源代码.zip
- JSP+SQL网站流量统计管理系统(源代码+论文)(2024h6).7z
- JSP+SQL网上选课系统(源代码+论文+答辩PPT)(2024h6).7z
- jsp+mysql在线考试系统论文(2024ra).7z
- JSP+Struct+MySql基于BBS管理系统设计与实现(源代码+论文+中英资料+开题报告+答辩PPT)(2024el).7z
- jsp+mysql远程餐厅预约系统-毕业设计(2024lq).7z
- JSP+SQLCD销售管理系统(源代码+论文+英文文献)(20241f).7z
- jsp+sql城乡信息管理(系统)(2024cv).7z
- JSP+SQL办公自动化管理系统(源代码+论文)(202424).7z
- 空中俯视物体检测5-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- JSPSmart系统-考试管理及成绩查询模块的设计与开发(源代码+论文)(2024kj).7z
- jsp+sql即时通讯工具(系统+论文)(20249m).7z
- jsp基于WEB的考务管理系统的设计与实现(源代码+论文)(2024oj).7z