【计算机毕业设计】基于SpringBoot+Vue毕业论文管理系统的开发与实现

目录

一、项目介绍 

二、项目主要技术 

三、系统设计

四、系统实现

4.1 学生前台功能实现

4.1.1 首页实现

4.1.2 发布选题页面

4.1.3 论文选题实现

4.1.4 响应式平板端实现

4.1.5 响应式手机端实现

4.2 管理员主要功能实现

4.2.1 轮播图管理

4.2.2 答辩信息页面

4.2.3 论文信息页面

4.3 教师用户主要功能实现

4.3.1 发布选题页面

4.3.2 选题信息页面

4.3.3 论文信息页面

4.4 学生用户主要功能实现 

4.4.1 发布选题页面

五、实现代码

一、项目介绍 

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

主要实现了首页、轮播图、公告通知管理、校园资讯、系统用户(管理员、学生用户、教师用户)、发布选题、论文选题、论文信息、选题信息、答辩信息、成绩信息等功能。

二、项目主要技术 

开发语言:Java
 
使用框架:spring boot
 
前端技术:JavaScript、Vue 、css3
 
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
 
数据库:MySQL 5.7/8.0
 
数据库管理工具:phpstudy/Navicat
 
JDK版本:jdk1.8
 
Maven: apache-maven 3.8.1-bin

三、系统设计

毕业论文管理系统的设计基于现有的手机,可以实现轮播图、公告通知管理、校园资讯、系统用户管理(管理员、学生用户、教师用户)、发布选题、论文选题、论文信息、选题信息、答辩信息、成绩信息等功能。方便用户对论文选题、浏览校园资讯、查看论文信息、收藏、发布评论等详细的了解及统计分析。根据系统功能需求建立的模块关系图,管理员用例如下图:

学生用户用例如下图: 

教师用户用例如下图:

四、系统实现

4.1 学生前台功能实现

4.1.1 首页实现

首页的实现,首页界面要尽量简洁大方,使学生能够方便找到需要的功能入口,浏览毕业论文相关信息,且要易于修改和维护,同时还要保证系统安全。

首页界面如下图所示。

4.1.2 发布选题页面

4.1.3 论文选题实现

4.1.4 响应式平板端实现

4.1.5 响应式手机端实现

4.2 管理员主要功能实现

4.2.1 轮播图管理

轮播图管理页面,管理员可以查询、重置、删除、添加轮播图标题、图片,如下图所示。

4.2.2 答辩信息页面

管理员可以查询、重置、删除、添加论文题目、论文类型、答辩学生、答辩时间、答辩地点、答辩须知、答辩状态、答辩结果等信息,并可进行详情和发布成绩的操作,如下图所示。 

4.2.3 论文信息页面

管理员可以填写和提交论文题目、答辩学生、答辩地点、答辩状态、论文类型、答辩时间、答辩须知、答辩结果等信息,并可进行查询、重置、删除、添加的操作,如下图所示。 

4.3 教师用户主要功能实现

4.3.1 发布选题页面

教师可以填写和发布论文题目、题目类型、题目附件、题目详情、题目状态等信息,如下图所示。

4.3.2 选题信息页面

教师可以查询、重置、删除、添加论文题目、指导教师、题目类型、选题学生、选题时间、题目状态、选题状态、选题备注等信息,并可进行详情操作,如下图所示。

4.3.3 论文信息页面

教师可以填写和提交论文题目、论文类、上传时间、论文评优、论文评语、指导教师、上传学生、论文附件、老师意见等信息,如下图所示。 

4.4 学生用户主要功能实现 

学生用户进入后台管理页面,可以查看首页、发布选题、选题信息、论文信息、答辩信息、成绩信息等模块内容,如下图所示。 

4.4.1 发布选题页面

学生可以查看发布学生、学生姓名、发布时间、论文题目、题目类型、题目附件、题目详情、选题状态等信息,并可进行详情、上传论文等操作,如下图所示。 

五、实现代码

/**
     * 注册
     * @param user
     * @return
     */
    @PostMapping("register")
    public Map<String, Object> signUp(@RequestBody User user) {
        // 查询用户
        Map<String, String> query = new HashMap<>();
        query.put("username",user.getUsername());
        List list = service.select(query, new HashMap<>()).getResultList();
        if (list.size()>0){
            return error(30000, "用户已存在");
        }
        user.setUserId(null);
        user.setPassword(service.encryption(user.getPassword()));
        service.save(user);
        return success(1);
}
 
/**
     * 用户ID:[0,8388607]用户获取其他与用户相关的数据
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "user_id")
    private Integer userId;
 
    /**
     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
     */
 
    @Basic
    @Column(name = "state")
    private Integer state;
 
    /**
     * 所在用户组:[0,32767]决定用户身份和权限
     */
 
    @Basic
    @Column(name = "user_group")
    private String userGroup;
 
    /**
     * 上次登录时间:
     */
 
    @Basic
    @Column(name = "login_time")
    private Timestamp loginTime;
 
    /**
     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
     */
 
    @Basic
    @Column(name = "phone")
    private String phone;
 
    /**
     * 手机认证:[0,1](0未认证|1审核中|2已认证)
     */
 
    @Basic
    @Column(name = "phone_state")
    private Integer phoneState;
 
    /**
     * 用户名:[0,16]用户登录时所用的账户名称
     */
 
    @Basic
    @Column(name = "username")
    private String username;
 
    /**
     * 昵称:[0,16]
     */
 
    @Basic
    @Column(name = "nickname")
    private String nickname;
 
    /**
     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
     */
 
    @Basic
    @Column(name = "password")
    private String password;
 
    /**
     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
     */
 
    @Basic
    @Column(name = "email")
    private String email;
 
    /**
     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)
     */
 
    @Basic
    @Column(name = "email_state")
    private Integer emailState;
 
    /**
     * 头像地址:[0,255]
     */
 
    @Basic
    @Column(name = "avatar")
    private String avatar;
 
    /**
     * 创建时间:
     */
 
    @Basic
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp createTime;
 
    @Basic
    @Transient
    private String code;
}


gitCode源码入口icon-default.png?t=N7T8https://gitcode.com/yuanmadd/ymgg/blob/main/README.md?init=initTree

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值