原始数据:书目信息、章节信息、历史信息、错题本信息、收藏信息、打卡信息、做题数量信息、题目信息、记录信息以及用户信息等。
主要任务:系统主要采用spring boot作为后端框架,前端使用微信小程序的专有框架,主要实现对于计算机考研学子,提供一个可以刷题的微信小程序。主要功能包括,用户刷题历史的查看。用户对于题目收藏的添加、删除、查看。用户对于错题集的添加、删除、查看。刷题记录的修改,添加、查看。打卡记录的添加,查看。用户对于书目和章节信息的查看。以及用户对于自己学习检验等功能。
技术要求: 1.数据库:MySQL数据库 ,redis数据库
数据获取:python爬虫的Beautifulsoup库和Selenium自动化框架
前端方面:微信小程序专有的框架
后端方面:Springboot、mybatis-plus、spring security、redis





题目练习流程图:

添加查看删除错题流程图:

类图设计:

顺序图设计:

用例图设计:





登录模块设计:
模块描述:用户登录小程序进行验证,对用户输入的信息进行核检
输出项:无
成功:登录成功
失败:登录失败 / 授权失败
算法描述:
使用spring security框架,对用户输入的信息就行核验,首先根据微信用户的唯一code码解析出用户的唯一标识openid,验证openid的合法性,如果为非法用户,则说明是新用户,根据openid创建该用户并返回登录成功,并将openid写入到redis中。
收藏模块设计:
(1)收藏题目显示
输出项:题目已收藏/题目未收藏
算法描述:
当用户进入答题界面/点击下一题后,系统调用controller层显示收藏的接口,获取当前题目的id,调用service进而调用dao层,查询该题目是否被加入到收藏,并将结果返回。
(2)添加收藏题目
输入项:序号+题目id+用户的id+创建时间+修改时间
输出项:添加成功/添加失败
算法描述:
调用controller层添加收藏接口,将题目信息进行封装后,调用service进而调用dao层,将数据写入到数据库,完成添加。
(3)删除收藏题目
输入项:题目id
输出项:删除成功/删除失败
算法描述:
调用controller层删除收藏题目的接口,将前端传过来的题目id传入函数,调用service进而调用dao层,将数据从数据库中删除。
(4)查看收藏题目
输出项:返回全部收藏题目
算法描述:
调用controller层全部查询收藏题目的接口,根据redis查询当前登录用户的openid传入函数,调用service进而调用dao层,将数据从数据库中查询出来,封装后返回给前端。
刷题记录模块设计:
(1)添加刷题记录
输入项:序号+索引+对应书的序号+用户的id+创建时间+修改时间+对应章节序号
输出项:添加成功/添加失败
算法描述:
调用controller层添加刷题记录接口,通过redis查询当前登录用户的openid,将从前端获取的刷题记录信息进行封装,调用service进而调用dao层,将数据写入到数据库,完成添加。
(2)修改刷题记录
输出项:修改后的刷题记录
算法描述:
调用controller层全部查询的刷题历史接口,通过redis查询当前登录用户的openid,获取从前端传过来的题目索引,调用service进而调用dao层,根据用户id将当前用户对应书目和章节的刷题记录进行修改,并将结果返回给前端。
(3)查询刷题记录
输出项:返回当前书目所有章节的刷题记录
算法描述:
调用controller层查询刷题记录接口,通过redis查询当前登录用户的openid,调用service进而调用dao层,根据用户id以及书目id和章节id将当前用户的对应章节的所有刷题记录返回给前端。
部分小程序端设计:
微信小程序的编写是有微信开发者工具编写编译,编辑机型为iPhone X,小程序共有10个页面,分别为初始页面,个人页面,收藏页面,真题强化页面,快速刷题页面,答题页面,错题本页面,刷题记录页面,考试页面,打卡页面。
考试页面:
考试页面主要是以答题页面为模板,不过答完题目之后,不会立刻获取正确答案和解析,必要等全部做完。在这个页面用户可以点击上一题和下一题来分别切换题目,当切换到最后一题时,系统会提示你最后一题,并把下一题按钮切换成提交按钮,用户还可以点击上一题去浏览检查做过的题目,等到测试结束,正确答案和解析会在题目下方显示。另外还设置了时间管理,一个可以只有拖拽的浮动球,显示考试时间,给用户带来真实的考试体验。
答题页面:
答题页面是很多刷题页面的模板,起初是设计不同书目每一章的答题页面,页框最上方显示章节name和刷题进度,下面显示题目信息,包括题目详细,选项内容,答案信息,解析等,用户可以在答题页面将题加入错题本和收藏夹里面,下面是下一个的按钮响应。
最上面导航栏对应的书目名字,还可以切换题库,中间部分是一个banner的轮播图,还有一部分是考研时间倒计时,下面部分就是章节的详细信息以及你刷题的数量和总数量。

用户可以点击每一章节题目进行练习,上面view内容主要有用户所刷题目的章节信息,和你做题记录,还有一个做题的程序条来提高用户做题体验,下面就是题目信息和选项信息,用户可以进行选择,选择完成后可以下一题切换题目。

用户选择答案后,可以查看题目来源,正确答案和解析,还可以选择加入错题本,收藏题目,右角还可以联系客服反应异常情况。

用户可以选择对应的章节进行阶段性测试,同时也会有时间来提醒用户,以创造更逼真的考试环境,时间结束后,系统将会强制收卷。

当用户做到最后一题的时候,会提示相应信息,并且按钮会变成交卷,交卷后就能查看答案和解析了。

用户可以在答题页面,快速刷题页面,真题强化页面,考试页面添加至错题本。

用户所加入的错题会在错题本里面展示,在这里面用户之前所选的答案,正确答案和解析都会显示出来.

用户做完题之后可以打卡,会统计这个月内你打卡的次数和总的坚持天数。




408小程序
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源
我正在根据Rakefile中的现有测试文件动态生成测试任务。假设您有各种以模式命名的单元测试文件test_.rb.所以我正在做的是创建一个以“测试”命名空间内的文件名命名的任务。使用下面的代码,我可以用raketest:调用所有测试require'rake/testtask'task:default=>'test:all'namespace:testdodesc"Runalltests"Rake::TestTask.new(:all)do|t|t.test_files=FileList['test_*.rb']endFileList['test_*.rb'].eachdo|task|n
我想要像“嘿那里”这样的东西变成,例如,#316583。我希望将任意长度的字符串“归结”为十六进制颜色。我不知道从哪里开始。我在想,每个字符串的MD5散列都是不同的-但如何将该散列转换为十六进制颜色数字? 最佳答案 你可以只取几位前几位:require'digest/md5'color=Digest::MD5.hexdigest('Mytext')[0..5] 关于ruby-如何使用Ruby基于字母数字字符串生成颜色?,我们在StackOverflow上找到一个类似的问题:
文章目录1.自动驾驶实战:基于Paddle3D的点云障碍物检测1.1环境信息1.2准备点云数据1.3安装Paddle3D1.4模型训练1.5模型评估1.6模型导出1.7模型部署效果附录show_lidar_pred_on_image.py1.自动驾驶实战:基于Paddle3D的点云障碍物检测项目地址——自动驾驶实战:基于Paddle3D的点云障碍物检测课程地址——自动驾驶感知系统揭秘1.1环境信息硬件信息CPU:2核AI加速卡:v100总显存:16GB总内存:16GB总硬盘:100GB环境配置Python:3.7.4框架信息框架版本:PaddlePaddle2.4.0(项目默认框架版本为2.3