Java毕业设计基于springboot的考研在线学习与交流平台

发布时间:2023年12月28日

一、项目介绍

??本系统从用户的角度出发,结合当前的环境而开发的,在开发语言上是使用的Java语言,在框架上我们是使用的springboot框架,数据库方面使用的是MySQL数据库,开发工具为IDEA。
考研在线学习与交流平台根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页,课程信息,在线讨论,系统公告,后台管理,个人中心等功能;后台部分主要给管理员使用的,主要功能包系统首页,个人中心,用户管理,类型管理,课程信息管理,课程笔记管理,在线讨论,系统管理等功能。通过这些功能基本可以满足考研和学习的需求。

关键词:考研;学习;springboot框架;MySQL

二、开发环境

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————

三、功能介绍

本系统的主要内容是完成一个考研在线学习与交流网站,其主要的功能有:
1.用户注册:用户注册后可以进入个人中心修改自己的资料以及进入在线讨论模块发言。
2.用户登录:提供注册用户的登录。
3.修改密码:可以修改密码。
4.个人中心:用户可以修改自己的个人信息。
5.课程学习:把课程资源进行分类,是用户可以浏览各种课程,点击每个课程可以看到详细信息。
6.在线测试:对各科选择题或英语单词等进行小测试,返回学生成绩。
7.搜素功能:用户可以利用自定义搜索找到自己想要找的资源,用户提交后返回查询结果。
8.在线讨论:登录成功的用户可以在该模块进行发言与其他人互动。
9.错题本:用户可以收藏自己测试时的错题进入错题本。
10.我的收藏管理:用户可以查询到自己收藏的课程资料。
11.系统管理:管理员对课程资源进行添加、修改、删除。
12.系统公告:管理员对网站进行发布公告、修改以及删除公告,普通用户可以查看已发布的公告。
13.用户管理:管理员对用户具有管理权限,可以添加、删除、修改用户信息。

3.2.1用户部分分析
考研在线学习与交流平台根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页,课程信息,在线讨论,系统公告,后台管理,个人中心等功能。用户用例图如图3-1所示。
在这里插入图片描述

图3-1用户用例图
3.2.2 管理员部分分析
管理员主要功能包系统首页,个人中心,用户管理,类型管理,课程信息管理,课程笔记管理,在线讨论,系统管理等功能。通过这些功能基本可以满足考研和学习的需求其中管理员用例图如图3-2所示。
在这里插入图片描述

图3-2管理员用例图

考研在线学习与交流平台根据实际情况分为前后台两部分,前台部分主要是让用户使用的,包括用户的注册登录,首页,课程信息,在线讨论,系统公告,后台管理,个人中心等功能;后台部分主要给管理员使用的,主要功能包系统首页,个人中心,用户管理,类型管理,课程信息管理,课程笔记管理,在线讨论,系统管理等功能。通过这些功能基本可以满足考研和学习的需求。。考研在线学习与交流平台具体功能如下图所示
在这里插入图片描述

图4-1考研在线学习与交流平台功能结构图

四、核心代码

部分代码:

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

五、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

六、文章目录

目录
摘 要 I
Abstract II
目录 III
第1章 系统概述 1
1.1 研究背景 1
1.2 研究意义 1
1.3研究内容和论文结构 1
第2章 系统开发环境 3
2.1 Java语言介绍 3
2.2 Spring boot框架介绍 3
2.3 MySQL数据库介绍 3
2.4 IDEA介绍 4
第3章 需求分析 5
3.1考研在线学习与交流平台需求分析 5
3.2 可行性分析 5
3.2.1技术可行性 5
3.2.2操作可行性 6
3.2.3经济可行性 6
3.1.4法律可行性 6
第4章 系统概要设计 7
4.1系统结构 7
4.2 数据库设计 7
第5章 系统详细设计 12
5.1 基于Spring Boot的考研在线学习与交流平台前台部分设计 12
5.1.1 系统首页 12
5.1.2用户注册 12
5.1.3用户登录 15
5.1.4系统公告 16
5.1.5课程信息 17
5.1.6考研交流 18
5.2 基于Spring Boot的考研在线学习与交流平台后台部分设计 20
5.2.1管理员登录模块的实现 20
5.2.2用户管理 21
5.2.3类型管理 23
5.2.4课程信息管理 24
5.2.5课程笔记管理 26
5.2.6系统公告管理 27
第6章系统测试 29
6.1 考研在线学习与交流平台的测试目的 29
6.2 考研在线学习与交流平台的测试方法 29
6.3 考研在线学习与交流平台测试用例 29
第7章 总结 32
致 谢 33
参考文献: 34

文章来源:https://blog.csdn.net/q_1262330535/article/details/135258222
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。