基于Springboot+Vue的家教小程序的设计与实现

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹

🦁作者简介 :一名喜欢分享和记录学习的在校大学生

💥个人主页code袁的博客

💥 个人QQ :2647996100

🐯 个人wechat :code8896
code袁系列专栏导航
1 .《毕业设计与课程设计》本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.微信小程序开发》本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.vue开发系列全程线路》本专栏分享自己的vue的学习历程。

非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

1、前言介绍

家教小程序前言

教育是点亮未来的火种,陪伴是成长路上最温暖的力量。我们致力于打造一个便捷、专业、可靠的家教服务平台,让优质教育资源触手可及,让每一位孩子都能得到针对性的学习指导与耐心陪伴。

在这里,家长可以快速找到适合孩子的老师,精准匹配学科需求、学习习惯与教学风格;老师能够展示专业能力,用心授课、助力成长;我们以诚信、透明、负责为原则,严格筛选师资,规范教学流程,用心守护每一次学习的开始。

愿以微光,照亮求学之路;愿以专业,陪伴成长每一步。让学习更高效,让教育更有温度。

2、功能设计

1.学员 / 家长端功能

快速发布家教需求,支持填写年级、科目、上课时间、辅导地点等信息。

智能筛选教师,可按科目、教学经验、学历、授课风格等条件精准匹配。

查看教师详情,包括个人简介、教学成果、学生评价、过往案例。

在线沟通预约,支持直接联系教师,确认上课时间与教学计划。

学习进度跟踪,记录上课情况、作业完成、阶段性学习效果。

订单与评价管理,完成课程后可对教师进行评价与反馈。
2.教师端功能

教师实名认证与资质上传,支持学历、教师资格证等信息审核。

在线创建个人主页,展示教学特长、辅导方案、授课价格。

实时查看家教订单,主动接单或申请匹配。

课程管理功能,记录课时、备课内容、学生学习情况。

消息通知与沟通,及时接收家长咨询与系统提醒。
3.平台管理功能

严格的教师资质审核,保障教学质量与用户安全。

智能推荐算法,实现家长需求与教师资源高效匹配。

订单流程规范化,从预约、上课到评价全程可追溯。

客服与投诉反馈,快速处理用户问题,提升服务体验。

3、功能实现

系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。下图就是管理员登录页面。







4、开发技术简介

本节介绍场馆预约平台用到的一些技术和开发环境的简介,用到开发技术主要包括:

(1)前端用到Element UI组件库和Vue框架

(2)后端Springboot

(3)包管理器Npm

(5)数据库MySQL

系统开发环境主要是:前端开发工具Vscode,Hbuilder、操作系统Win10、CPU i5-9300H、内存8G。

5、系统物理架构

自习室系统的物理架构主要有:管理端和用户端,其中管理端主要是基于Vue和Element UI,用户端主要基于安卓、微信小程序和H5自习室系统的物理建构图

6、系统流程图

用户发起预约时首先会检测用户是否登录,若登录则进入到相应的预约界面,此时用户可以选择需要预约的时间段以及场地。当用户预约成功时用户会在我的预约中找到这次预约。当用户去场馆时可以通过预约生成的二维码来验证身份。若用户的预约时间失效也会有响应的提示

7、库表设计


8、关键代码
java 复制代码
package com.hima.controller;


import com.hima.pojo.Result;
import com.hima.pojo.ToturOrder;
import com.hima.pojo.UserBase;
import com.hima.pojo.UserParent;
import com.hima.service.IndexService;
import com.hima.service.UserService;
import com.hima.utils.MD5Utils;
import com.hima.utils.jwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public Result login(String username, String password,String userType){
        UserBase loginUser=userService.findByUserName(username,userType);
        System.out.println("11"+loginUser+username+password);
        if (loginUser==null){
            return Result.error("用户名错误");
        }
        //判断密码是否正确
        if(MD5Utils.md5(password).equals(loginUser.getPassword())){
            //生成token,并且返回给前端
            Map<String,Object> claims=new HashMap<>();
            claims.put("id",loginUser.getId());
            claims.put("username",loginUser.getUsername());
            String token= jwtUtil.getToken(claims);

            return Result.success(token);
        }
        //密码错误
        return Result.error("密码错误");
    }

    // 注册
    @PostMapping("/addUser")
    public Result addUser(String username, String password, String gender, String userType){
        userService.addUser(username, MD5Utils.md5(password), gender, userType);
        return Result.success();
    }

    //获取用户信息
    @RequestMapping("/getUserInfo")
    public Result<UserBase> getUserInfo(String username, String userType){
        UserBase user = userService.findByUserName(username, userType);
        return Result.success(user);
    }

    //修改用户信息
    @RequestMapping("/updateUserInfo")
    public Result updateUserInfo(String imgUrl, String gender, String  oldPassword, String confirmPassword, String user_id,String username,String userType){
        UserBase loginUser=userService.findByUserName(username,userType);
        if(MD5Utils.md5(oldPassword).equals(loginUser.getPassword())){
            String password=MD5Utils.md5(confirmPassword);
            userService.updateUserInfo(imgUrl, gender,password, user_id);
            return Result.success();
        }
        //密码错误
        return Result.error("原密码错误");
    }

    //修改学生信息
    @RequestMapping("/updateStudent")
    public Result updateStudent(String student_name, String student_age, String address, String require_subject, String require_desc, String user_id){
        userService.updateStudent(student_name, student_age, address, require_subject, require_desc, user_id);
        return Result.success();
    }

    //获取学生信息
    @RequestMapping("/getStudentInfo")
    public Result<UserParent> getStudentInfo(String user_id){
        UserParent user = userService.getStudentInfo(user_id);
        return Result.success(user);
    }


    //获取全部收入
    @RequestMapping("/getIncome")
    public Result<List<ToturOrder>> getIncome(String teacher_id){
        List<ToturOrder> income = userService.getIncome(teacher_id);
        return Result.success(income);
    }

}
9、源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

相关推荐
扶苏10022 小时前
Vue 3 新增内置组件详解与实战
前端·javascript·vue.js
zsyf19872 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
一 乐3 小时前
健身房预约|基于java+ vue健身房预约小程序系统(源码+数据库+文档)
java·vue.js·spring boot·小程序·论文·毕设·健身房预约小程序
扶苏10023 小时前
详解Vue2和Vue3的变化
前端·javascript·vue.js
慧一居士4 小时前
nuxtjs和nextjs区别对比
前端·vue.js
火车头-1104 小时前
MacBook Air M4 安装JvisualVM
spring boot·macos·visualvm
未来龙皇小蓝4 小时前
RBAC前端架构-07:自定义指令role、permission实现权限控制
前端·vue.js
三水不滴4 小时前
SpringBoot + Redis 滑动窗口计数:打造高可靠接口防刷体系
spring boot·redis·后端
hrhcode5 小时前
【Netty】一.Netty架构设计与Reactor线程模型深度解析
java·spring boot·后端·spring·netty