博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、技术咨询。

精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

SpringBoot+Vue项目持续更新中

http://t.csdn.cn/1mgm8

🍅文末获取联系🍅

目录

一、项目介绍 

二、项目主要技术 

三、系统设计

四、系统实现

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;
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐