【计算机毕业设计】基于SpringBoot的程序教学辅助系统

基于SpringBoot的程序教学辅助系统

一、项目简介

本系统是一套面向高校 C 程序设计课程的前后端分离辅助教学平台。后端采用 Spring Boot、MyBatis、JWT 和 MySQL,前端采用 Vue、Element UI 与 ECharts;平台围绕课程、团队、作业、提交、成绩和公告等教学环节,重点支持团队协作模式下的小组作业与过程管理。

项目实际包含认证、课程、团队、提交、公告、用户及其对应的管理员控制器;前端分为用户端和管理端布局,包含学生课程、团队、作业、提交、公告、个人中心,以及管理员看板、课程、团队、作业、提交、用户和公告页面。

二、系统功能

1.1 学生端功能

注册登录与个人资料

学生可通过登录入口进入系统,并在个人资料页面维护基础信息。JWT 拦截器用于控制课程、团队、作业提交等需要登录的接口访问。

课程信息浏览

学生可在 CoursePage.vue 浏览课程信息、课程介绍和相关教学内容。课程模块为学生后续查看作业、加入团队和提交成果提供课程归属。

团队创建与成员协作

学生可在 TeamPage.vue 创建团队、加入团队或查看团队成员信息。团队模块将学生与小组作业关联,使课程实践能够以团队为单位完成分工和成果提交。

作业查看与提交

学生可在 AssignmentPage.vue 查看作业要求、截止时间和作业类型,并在 SubmissionPage.vue 提交个人或团队作业。提交模块保存历史提交记录,便于学生后续查询提交状态、成绩和教师反馈。

公告与个人学习面板

学生可在公告页面查看课程或系统通知,并通过用户端 Dashboard 了解与本人相关的课程、团队和作业信息。

1.2 管理员端功能

教学数据看板

AdminDashboard.vue 汇总课程、团队、作业、提交和用户等教学数据,结合 ECharts 展示统计信息,帮助教师或管理员了解课程运行情况。

课程与作业管理

管理员可在 AdminCourses.vue 维护课程资料,在 AdminAssignments.vue 发布、修改和管理作业。作业配置完成后,学生端可按课程查看相应任务和提交要求。

团队与提交评阅

管理员可通过 AdminTeams.vue 查询团队与成员关系,通过 AdminSubmissions.vue 查看学生或团队提交的作业,填写成绩与评语并完成评阅反馈。

用户与公告管理

管理员可在 AdminUsers.vue 维护用户账号和状态,在 AdminAnnouncements.vue 发布、编辑和管理教学公告,及时向学生传递课程安排和作业通知。

三、技术栈

层级 技术 说明
后端 Java 8、Spring Boot 2.7.18 教学业务接口
数据访问 MyBatis、MySQL 8.0 用户、课程、团队、作业和提交数据存储
身份认证 JWT 登录与接口权限控制
前端 Vue 2、Vue Router、Vuex、Element UI、Axios 用户端与管理端页面
数据可视化 ECharts 管理端教学数据统计

四、项目结构

bash 复制代码
c160/
├── database/
│   ├── init.sql                         # 建表脚本
│   └── data.sql                         # 初始化数据
├── backend/src/main/java/
│   └── controller/
│       ├── AuthController.java
│       ├── CourseController.java
│       ├── TeamController.java
│       ├── SubmissionController.java
│       ├── AnnouncementController.java
│       ├── UserController.java
│       └── admin/                       # 课程、团队、提交、用户和公告管理接口
├── frontend/src/
│   ├── views/                           # 课程、团队、作业、提交、公告、个人中心
│   └── views/admin/                     # 看板、课程、作业、团队、提交、用户、公告
└── README.md

五、环境要求

  • JDK 8
  • Maven 3.6+
  • MySQL 8.0
  • Node.js 12+
  • npm

六、数据库初始化

按顺序导入 database/init.sqldatabase/data.sql,随后根据本机环境修改后端数据源配置。

bash 复制代码
mysql -u root -p --default-character-set=utf8mb4 < database/init.sql
mysql -u root -p --default-character-set=utf8mb4 < database/data.sql

七、后端启动

bash 复制代码
cd backend
mvn spring-boot:run

八、前端启动

bash 复制代码
cd frontend
npm install
npm run serve

九、默认账号

项目未提供可确认的默认账号,请以 database/data.sql 中的初始化数据为准。

十、业务流程说明

9.1 团队作业教学流程

管理员先创建课程并发布作业,设置作业要求和相关信息。学生进入课程后创建或加入团队,团队成员查看作业任务并按照分工完成个人或团队成果提交。

提交记录进入管理员端,教师或管理员查看内容、进行评阅并填写成绩与评语;学生在提交页面查询审核或评阅结果,从而完成课程、团队、作业、提交与反馈闭环。

9.2 教学公告与运营流程

管理员发布课程公告后,学生在公告页面查看最新通知。管理端看板汇总课程、团队和提交等数据,管理人员可据此调整课程安排、团队管理和作业发布节奏。

十一、交付内容

  1. 项目完整源码,包含 Spring Boot 后端与 Vue 前端代码。
  2. 数据库脚本文件 init.sql 与 data.sql。
  3. 项目说明文档,包含功能说明、运行环境、初始化和启动步骤。

本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。

个人网址:https://michael-jay.pages.dev/

相关推荐
2601_962066491 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
yaoxin5211232 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F2 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
kyriewen3 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程
2601_962072213 小时前
SpringMVC进阶(自定义拦截器以及异常处理)
java
风骏时光牛马3 小时前
大模型落地实践中的技术选型思路与方案对比
前端
2601_962073813 小时前
Spring全面详解(基础版)
java·后端·spring
IT_陈寒4 小时前
Vite打包时的静态资源坑,我帮你踩过了
前端·人工智能·后端
考虑考虑4 小时前
kubectl命令
运维·后端·自动化运维