基于SpringBoot实现的课程答疑系统设计与实现【源码+文档】

基于SpringBoot+Vue实现的课程答疑系统采用前后端分离架构方式,系统设计了管理员、学生、老师三种角色,系统实现了用户登录与注册、个人中心、学生管理、老师管理、科目类型管理、学生问题管理、老师回答管理、老师信息管理、关注列表管理、交流区、轮播图管理等功能。

技术选型

开发工具:idea2020.3+Webstorm2020.3

运行环境:jdk1.8+maven3.6.0+MySQL5.7+nodejs14.21.3

服务端技术:Springboot+Mybatis-Plus

前端技术:html+css+Vue+axios+Element-UI

成果展示

文档展示

管理端页面

用户登录

学生管理

学生管理

老师管理

科目类型管理

学生问题管理

老师回答管理

老师信息管理

关注列表管理

交流区

轮播图管理

用户端页面

用户登录

首页

学生问题

老师回答

老师信息

交流区

个人中心

源码展示

复制代码
@RequestMapping("users")
@RestController
publicclass UserController{

@Autowired
private UserService userService;

@Autowired
private TokenService tokenService;

/**
  * 登录
  */
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
  UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
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);
 }

/**
  * 注册
  */
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity 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");
    }

/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
     PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
       ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
     Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
}

账号地址及其他说明

1、地址说明

管理端登录页面 http://localhost:8081/#/login

用户端登录页面 http://localhost:8080/springboot7vkr1/front/pages/login/login.html

2、账号说明

管理员 账户:admin 密码:admin

学生 账户:学生账号1 密码:123456

老师 账户:老师账号1 密码:123456

3、目录结构展示

4、项目结构展示

运行步骤

复制代码
1、创建数据库、导入sql脚本
2、修改application.yml中的数据库配置文件,启动服务端
3、在前端根目录下打开cmd,执行npm install或者yarn install下载依赖
4、下载完毕后启动前端npm run serve,访问端口
相关推荐
daidaidaiyu11 分钟前
Jetlinks 物联网平台 开源版学习源码分析
java·mqtt·rxjava·tcp
j***788843 分钟前
clickhouse-介绍、安装、数据类型、sql
java
2***B4491 小时前
Rust在系统编程中的内存安全
开发语言·后端·rust
U***e631 小时前
Rust错误处理最佳实践
开发语言·后端·rust
q***47181 小时前
Spring中的IOC详解
java·后端·spring
vx_vxbs662 小时前
【SSM电影网站】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·小程序·php·idea
SunnyDays10112 小时前
如何使用 Java 删除 Word 文档中的水印
java·删除word文档水印
码事漫谈2 小时前
C++小白最容易踩的10个坑(附避坑指南)
后端
码事漫谈3 小时前
性能提升11.4%!C++ Vector的reserve()方法让我大吃一惊
后端
毕设源码-邱学长3 小时前
【开题答辩全过程】以 基于Java企业人事工资管理系统为例,包含答辩的问题和答案
java·开发语言