前言

又一次参加了计算机设计大赛,不过这次换了一个赛道

logo1

视频演示

获奖省二

拿到了省级二等奖

image-20230625145843494

作品名称 RollCode - 在线做题平台
介绍 ”RollCode - 在线做题平台“是一个在线题库做题平台,旨在为编程和其他行业爱好者提供高质量的题目和训练,帮助学习者提高技能和应对挑战的能力。”RollCode- 在线做题平台“的题目覆盖了算法、数据结构、操作系统、计算机网络、数据库、前端开发、后端开发等多个领域,难度分级也比较全面,适合初学者和有一定编程基础的用户。用户可以选择不同的题目类型(单选题、多选题、编程题等)进行练习和考试,同时,RollCode提供实时答疑、学习计划和学习路线等服务,帮助用户更好地制定学习计划、掌握知识点和提高编程技能。在未来,”RollCode- 在线做题平台“计划提供了在线编程环境和代码编辑器,支持多种编程语言(如Java、C++、Python等)和操作系统(如Windows、Linux等),方便用户进行实际的编程练习。”RollCode - 在线做题平台“是一个专注于编程题目和实战训练的在线做题平台,为广大编程爱好者提供高质量的题目和实用工具,帮助他们提高编程技能和应对面试挑战的能力。
开源代码与组件使用情况说明 本项目采用前后端分离设计,易于高效的开发和维护,可拓展性更好。前端:前台项目:Vue3+Element-Plus开发后台项目:Vue2+Element开发构建工具:Node.js后端:开发语言:Java项目架构:SpringMVC+Springboot+Mybatis-Plus数据库使用:MySQL+Redis构建工具:Maven+IDEA
作品安装说明 1.环境要求•Node.js:版本要求 v14.0.0 或更高版本•Java:版本要求 JDK 1.8 或更高版本•MySQL:版本要求 5.7 或更高版本•Redis:版本要求 3.2 或更高版本•Maven:版本要求 3.6.0 或更高版本 2.下载代码从代码仓库下载最新的代码并解压缩到你想要安装的目录中。 3.配置数据库•在 MySQL 中创建一个新的数据库,并将其名称添加到 application.yml 文件中的 spring.datasource.url 属性中。•在 MySQL 中执行 rollcode.sql 文件中的 SQL 语句,以创建所需的表和数据。 4.配置 Redis•将 Redis 的主机名和端口号添加到 application.yml 文件中的 spring.redis.hostspring.redis.port 属性中。 5.配置后端项目•使用 IDEA 打开后台项目,并在 application.yml 文件中配置数据库和 Redis 相关的属性。•运行后台项目,确保它能够正常启动。 6.配置前端项目•使用命令行工具进入前台项目的根目录,并执行以下命令安装依赖项:npm install•在 vue.config.js 文件中配置后台 API 的基本 URL。•运行前台后台项目,确保它能够正常启动。 7.访问应用程序•在浏览器中访问应用程序的 URL,即可开始使用它。•前台:http://localhost:8081•后台:http://localhost:8090•后端:http://localhost:8080
作品效果图 拼图
设计思路 1. 技术选型•RollCode平台的后端采用Java语言和SpringBoot框架以及MybatisPlus进行开发。•数据库使用MySQL以及缓存数据库Redis。•前端采用Vue2、Vue3、ElementUI、ElementPlus、TypeScript、Axios等现代化框架,实现动态交互效果。2. 数据库设计•用户表:存储用户的基本信息,如用户名、密码、邮箱、电话号码等信息。FieldTypeCommentidbigint用户 IDnicknamevarchar昵称usernamevarchar用户名passwordvarchar密码emailvarchar邮箱phonevarchar手机号gendertinyint性别(0=未知,1=男,2=女)birthdaydate生日cityvarchar所在城市levelint用户等级register_daysint注册天数last_login_timedatetime最后一次登录时间create_timedatetime创建时间update_timedatetime更新时间statusvarchar是否删除(0=未删除,1=已删除)avatarvarchar用户头像•题目表:包括题目类型、题目分类、难度等级、题干、选项、答案等信息。FieldTypeCommentidbigint主键,自增category_idint题目分类(例如数据结构、算法、计算机基础等)typetinyint题目类型:(1:单选,2:多选,3:判断)contenttext题目内容optionstext选项,JSON格式answertext答案,JSON格式difficultytinyint题目难度(1:简单,2:中等,3:困难)create_timedatetime创建时间update_timedatetime修改时间create_userbigint创建者IDis_deletedtinyint是否已删除(0:未删除,1:已删除)scoretinyint分数•做题记录表:存储用户的做题记录,包括做题时间、题目ID、用户答案、是否正确等信息。•统计表:存储用户的做题统计信息,包括用户的总做题数、正确率等信息。3. 后端开发•采用SpringMVC和SpringBoot提供后台API接口项目的基础框架和开发环境•Mybatis-Plus提供ORM框架,简化数据库操作•MySQL、Redis提供数据存储和缓冲技术•Spring Security提供安全认证和授权功能•SpringJPA提供了对JPA规范的实现支持•SpringCloud提供了微服务架构支持4. 前端开发•采用Vue2、Vue3进行前端框架的搭建•使用ElementUI、ElementPlus框架进行快速开发•采用RESTful风格用Axios与后端进行交互数据(1) 前台开发•登录注册模块:提供用户注册、登录、修改个人信息等功能。•做题模块:展示题目和选项,支持用户选择答案并提交答案。•统计模块:展示用户做题历史、正确率等数据,并提供个性化的学习建议和指导。(2) 后台开发•题目管理模块:提供添加、删除、修改、查询题目等基本功能。•用户管理模块:提供用户注册、登录、修改个人信息等功能。•做题模块:根据用户选择的题目类型和难度等级,从题目库中随机抽取一定数量的题目,向用户展示题目并记录用户的答题情况,最终给出评分和反馈。•统计模块:统计用户的做题历史、正确率等数据,为用户提供个性化的学习建议和指导。5. 测试和部署在开发完成后,需要进行全面的测试,确保平台的稳定性和可靠性。之后,可以将平台部署到云服务器上,使用户可以随时随地访问和使用。
设计重点难点 设计重点和难点:1.题目质量和难度的控制本项目的核心在于提供高质量的题目和实战训练,因此题目的质量和难度的控制是一个重点和难点。为了满足不同用户的需求,需要针对不同的用户群体设定不同的难度等级,并确保题目的质量和难度与其等级相匹配。并且还需要确保题目的正确性和完整性,避免出现错误或不完整的题目。2.在线编程环境和代码编辑器的实现本项目计划提供在线编程环境和代码编辑器,支持多种编程语言和操作系统。在线编程环境和代码编辑器需要实现许多复杂的功能,如代码高亮、自动补全、语法检查、编译和运行等。此外,还需要考虑安全性和稳定性问题,以确保用户的代码和数据不会遭受损失或攻击。3.学习计划和学习路线的定制为了帮助用户更好地掌握知识点和提高编程技能,本项目提供学习计划和学习路线等服务。学习计划和学习路线需要根据用户的需求和实际情况进行定制,同时还需要考虑如何实现自动化的计划生成和更新,以及如何跟踪用户的学习进度和反馈。解决方案:1.题目质量和难度的控制为了确保题目的质量和难度的控制,可以设立专门的题目审核团队,对所有题目进行审核和评估。审核团队可以根据题目的难度等级、知识点和类型等,制定相应的审核标准和流程,并对题目进行定期的更新和修订。2.在线编程环境和代码编辑器的实现为了实现在线编程环境和代码编辑器,可以使用成熟的技术和工具,如Docker容器、WebSockets、CodeMirror等。Docker容器可以提供一个独立的、安全的编程环境,WebSockets可以实现实时的代码编辑和调试,CodeMirror可以提供代码高亮、自动补全和语法检查等功能。同时,还需要加强安全性和稳定性的设计,如使用虚拟化技术、限制用户权限、实现数据备份和恢复等。3.学习计划和学习路线的定制为了实现学习计划和学习路线的定制,可以使用用户画像、数据分析和机器学习等技术,根据用户的学习历史、兴趣和能力等,生成或调整相应的学习计划和学习路线。同时,还需要提供用户反馈和调整的机制,让用户可以自主地调整学习计划和学习路线,并及时跟踪和反馈学习进度和效果。