目录
系统框架
系统采用前端、后端、mysql数据库的模式进行代码分层开发,方便代码的维护和功能的扩展,下面是系统架构设计图:
运行环境
开发语言:Java
数据库:MySQL
系统架构:B/S
后端:SpringBoot
前端:Vue
工具:IDEA,JDK1.8,Maven
功能介绍及页面
学生
1、注册,上传个人信息
2、课程信息,查看课程信息,可以收藏,评论,下载学习文件,观看视频
3、作业信息,查看老师布置的作业,可以下载作业,完成后提交作业
4、成绩信息,查看老师发布的成绩信息
5、留言讨论,可以发帖交流学习,可以评论
6、 试卷,查看试卷信息,可以进行考试
7、公告信息,查看发布的公告信息
8、个人中心,修改个人信息及密码,查看考试记录,错题本,我的收藏
教师
1、注册,上传个人信息
2、个人中心,修改个人信息及密码
3、课程信息管理,新增修改删除课程信息,上传课程文件,上传学习视频,查看评论
4、作业信息管理,新增修改删除作业信息,上传作业文件
5、作业提交管理,查看学生提交的作业,批阅后上传成绩
6、成绩信息管理,查看学生的成绩信息,可以导出,打印成绩
7、错题统计管理,新增修改删除错题统计信息
8、试卷管理,新增修改删除试卷信息
9、试题管理,新增修改删除试题信息,可以导出,打印
10、系统管理,新增修改删除公告信息
11、考试管理,查看错题本,考试记录,可以导出,打印考试记录
12、首页展示课程信息总数,作业提交总数,成绩信息总数,错题统计总数,查看课程类型统计,作业人数统计,成绩统计,错题数量统计图表
管理员
管理员
1、首页展示课程信息总数,作业提交总数,成绩信息总数,错题统计总数,查看课程类型统计,作业人数统计,成绩统计,错题数量统计图表
2、个人中心,修改个人信息及密码
3、学生管理,新增修改删除学生信息
4、教师管理,新增修改删除教师信息
5、课程类型管理,新增修改删除课程类型
6、课程信息管理,查看课程信息,可以修改删除
7、作业信息管理,查看作业信息,可以修改删除
8、作业提交管理,查看作业提交信息,可以修改删除
9、成绩信息管理,查看学生的成绩信息,可以导出,打印成绩
10、错题统计管理,查看错题统计信息,可以修改删除
11、留言讨论,查看学生发布的帖子信息,查看评论
12、系统管理,新增修改删除公告信息,修改轮播图信息
项目技术介绍:
Java介绍:
Java的主要特点是简单性、面向对象、分布式、健壮性、安全性和可移植性。Java的设计初衷是让程序员能够以优雅的方式编写复杂的程序。它支持 Internet 应用的开发,并内建了网络应用编程接口,极大地便利了网络应用的开发。同时,Java的强类型机制和异常处理功能确保了程序的健壮性。Java分为三个主要版本:Java SE(标准版),主要用于桌面应用程序开发;Java EE(企业版),用于开发企业级应用;Java ME(微型版),专门用于嵌入式系统和移动设备应用开发。这些版本让Java能够适应不同的开发需求。总的来说,Java因其广泛的应用场景和稳定的性能,在全球范围内拥有庞大的开发者社区和支持,各种开源项目也为Java开发提供了极大的便利和资源[^3^]。这使得Java不仅在互联网和企业应用中占据重要地位,还在大数据和Android移动开发中有着广泛应用。
Mysql数据库介绍:
MySQL主要用于在各种流行操作系统平台上进行数据存储和管理,采用客户端/服务器模式运行。这种架构支持高效的数据操作和管理,使得MySQL在Web应用、企业应用和移动应用中广泛使用。MySQL使用结构化查询语言(SQL),这是一种标准化的语言,用于访问和维护数据库。由于其开源特性,MySQL对大多数个人用户来说是免费的,并且易于下载和安装。这使得它成为许多中小型企业和开发者的首选数据库系统。MySQL具有多种显著优点。首先,它支持多线程操作,可以充分利用CPU资源,提高性能。其次,MySQL提供多种API,支持多种编程语言如C、C++、Python、Java等,使其可以轻松集成到不同的应用程序中。此外,MySQL还支持多种存储引擎,如InnoDB和MyISAM,以满足不同的应用需求。
核心代码参考
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String role, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user != null){
if(!user.getRole().equals(role)){
return R.error("权限不正常");
}
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}else{
return R.error("账号或密码或权限不对");
}
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
数据库sql
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(100) NOT NULL COMMENT '用户名',
`password` varchar(100) NOT NULL COMMENT '密码',
`role` varchar(100) DEFAULT '管理员' COMMENT '角色',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';
/*Data for the table `users` */
insert into `users`(`id`,`username`,`password`,`role`,`addtime`) values (1,'admin','admin','管理员','2022-05-01 00:00:00');
为什么选我
博主是从事软件开发多年的学长,和小伙伴一起接点单,纯个人,避免中介对接累计开发或辅导多名同学,有丰富的项目开发和文档编写经验、同学们有任何项目问题都可以联系我,专注于学生毕业项目实战。
获取码源
文章下方名片联系我即可~
大家点赞、收藏、关注、评论啦 、查看👇🏻点击获取联系方式👇🏻,暗号:000