Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案

马肤

温馨提示:这篇文章已超过441天没有更新,请注意相关的内容是否还可用!

摘要:基于Springboot和Vue框架,结合微信小程序技术,开发了一款在线学习平台。该平台提供便捷的学习体验,利用微信小程序的用户基础,实现移动学习资源的无缝接入。通过Springboot构建后端架构,Vue负责前端界面开发,小程序作为移动端的延伸,共同构建一个高效、互动的在线学习生态系统。

一、项目介绍

  

        基于Spring Boot+Vue+小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring Boot+Vue+小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。

       功能丰富,项目保证质量,需要可以最底下查看QQ二维码找我私聊。运行讲解服务均可有尝提供,即便你是零基础,也能听懂的优秀讲解老师。

功能:

1.个人中心修改密码里查看个人信息

2.教师管理

3.学生管理

4.课程视频管理

5.课程签到管理

6.课程问题管理

7.课程答题管理

8.答题成绩管理

9.课程类型管理

10.课程资料管理

11.通知信息管理

12.加入课程管理

13.学习论坛管理

14.课程考试管理

15.试题管理

16.系统简介,轮播图,平台公告,关于我们管理

17.考试管理

关键词:商品;购物;Spring Boot框架;MySQL

二、开发环境

开发语言:Java

框架:springboot + vue + 小程序

JDK版本:JDK1.8

数据库:mysql

数据库工具:Navicat11

开发软件:idea/vscode/eclipse

Maven包:Maven

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第1张

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第2张Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第3张

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第4张

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第5张

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第6张

Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第7张

表结构示例:

表名:kechengxinxi

功能:课程信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengbianhao

varchar

200

课程编号

kechengmingcheng

varchar

200

课程名称

kechengleixing

varchar

200

课程类型

keshi

varchar

200

课时

xuefen

varchar

200

学分

kechengtupian

longtext

4294967295

课程图片

shangkeshijian

varchar

200

上课时间

shangkedidian

varchar

200

上课地点

jiaoshigonghao

varchar

200

教师工号

jiaoshixingming

varchar

200

教师姓名

kechengjieshao

longtext

4294967295

课程介绍

表名:discusskechengshipin

功能:课程视频评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表名:kechengqiandao

功能:课程签到

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengbianhao

varchar

200

课程编号

kechengmingcheng

varchar

200

课程名称

kechengtupian

longtext

4294967295

课程图片

kechengleixing

varchar

200

课程类型

jiaoshigonghao

varchar

200

教师工号

jiaoshixingming

varchar

200

教师姓名

zhangcheng

varchar

200

章程

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueshengshouji

varchar

200

学生手机

zhuanye

varchar

200

专业

banji

varchar

200

班级

qiandaoshijian

datetime

签到时间

kechengxinde

longtext

4294967295

课程心得

代码示例一,课程信息代码

package com.controller;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.KechengxinxiEntity;
import com.entity.view.KechengxinxiView;
import com.service.KechengxinxiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
/**
 * 课程信息
 * 后端接口
 */
@RestController
@RequestMapping("/kechengxinxi")
public class KechengxinxiController {
    @Autowired
    private KechengxinxiService kechengxinxiService;
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map params, KechengxinxiEntity kechengxinxi,
                  HttpServletRequest request) {
        String tableName = request.getSession().getAttribute("tableName").toString();
        if (tableName.equals("jiaoshi")) {
            kechengxinxi.setJiaoshigonghao((String) request.getSession().getAttribute("username"));
        }
        EntityWrapper ew = new EntityWrapper();
        PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));
        return R.ok().put("data", page);
    }
    /**
     * 前端列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map params, KechengxinxiEntity kechengxinxi,
                  HttpServletRequest request) {
        EntityWrapper ew = new EntityWrapper();
        PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));
        return R.ok().put("data", page);
    }
    /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list(KechengxinxiEntity kechengxinxi) {
        EntityWrapper ew = new EntityWrapper();
        ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));
        return R.ok().put("data", kechengxinxiService.selectListView(ew));
    }
    /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(KechengxinxiEntity kechengxinxi) {
        EntityWrapper ew = new EntityWrapper();
        ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));
        KechengxinxiView kechengxinxiView = kechengxinxiService.selectView(ew);
        return R.ok("查询课程信息成功").put("data", kechengxinxiView);
    }
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id) {
        KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);
        return R.ok().put("data", kechengxinxi);
    }
    /**
     * 前端详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id) {
        KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);
        return R.ok().put("data", kechengxinxi);
    }
    
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {
        kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        //ValidatorUtils.validateEntity(kechengxinxi);
        kechengxinxiService.insert(kechengxinxi);
        return R.ok();
    }
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {
        kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        //ValidatorUtils.validateEntity(kechengxinxi);
        kechengxinxiService.insert(kechengxinxi);
        return R.ok();
    }
    
    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {
        kechengxinxiService.updateById(kechengxinxi);//全部更新
        return R.ok();
    }
    
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids) {
        kechengxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    /**
     * 提醒接口
     */
    @RequestMapping("/remind/{columnName}/{type}")
    public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
                         @PathVariable("type") String type, @RequestParam Map map) {
        map.put("column", columnName);
        map.put("type", type);
        if (type.equals("2")) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            Date remindStartDate = null;
            Date remindEndDate = null;
            if (map.get("remindstart") != null) {
                Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
                c.setTime(new Date());
                c.add(Calendar.DAY_OF_MONTH, remindStart);
                remindStartDate = c.getTime();
                map.put("remindstart", sdf.format(remindStartDate));
            }
            if (map.get("remindend") != null) {
                Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
                c.setTime(new Date());
                c.add(Calendar.DAY_OF_MONTH, remindEnd);
                remindEndDate = c.getTime();
                map.put("remindend", sdf.format(remindEndDate));
            }
        }
        Wrapper wrapper = new EntityWrapper();
        if (map.get("remindstart") != null) {
            wrapper.ge(columnName, map.get("remindstart"));
        }
        if (map.get("remindend") != null) {
            wrapper.le(columnName, map.get("remindend"));
        }
        String tableName = request.getSession().getAttribute("tableName").toString();
        if (tableName.equals("jiaoshi")) {
            wrapper.eq("jiaoshigonghao", (String) request.getSession().getAttribute("username"));
        }
        int count = kechengxinxiService.selectCount(wrapper);
        return R.ok().put("count", count);
    }
}
 
      
        
          
            课程名称
            
          
          
            课程类型
            
              
            
          
          
            教师姓名
            
          
          查询
          
        
        
          新增
          
          删除
          
        
      
      
      
        
        
        
          
            {{ scope.row.kechengbianhao }}
          
        
        
          
            {{ scope.row.kechengmingcheng }}
          
        
        
          
            {{ scope.row.kechengleixing }}
          
        
        
          
            {{ scope.row.keshi }}
          
        
        
          
            {{ scope.row.xuefen }}
          
        
        
          
            
              Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第8张Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第8张
            
            无图片
          
        
        
          
            {{ scope.row.shangkeshijian }}
          
        
        
          
            {{ scope.row.shangkedidian }}
          
        
        
          
            {{ scope.row.jiaoshigonghao }}
          
        
        
          
            {{ scope.row.jiaoshixingming }}
          
        
        
          
            详情
            
            加入课程
            
            发布视频
            
            发布资料
            
            修改
            
            查看评论
            
            删除
            
          
        
      
      
      
    

三.关于我的联系方式      

                                Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第10张

                                   Springboot+vue+小程序+基于微信小程序的在线学习平台,基于Springboot和Vue框架的微信小程序在线学习平台开发方案 第11张


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码