
项目简介本项目是一个面向高校课外创新实践学分认定场景的综合管理系统采用“微信小程序前台 Vue 后台管理端 Spring Boot 后端服务 MySQL 数据库”的整体架构开发。系统主要解决学生课外创新实践成果申报、证明材料上传、教师或管理员审核、学分认定、公告通知、后台数据统计等业务需求适合作为计算机相关专业毕业设计项目使用。项目分为三个端微信小程序端面向学生使用支持注册登录、查看公告、提交学分申请、上传证明材料、查看审核进度。后台管理员端面向管理员和审核人员使用支持基础数据管理、申请审核、公告发布、数据可视化统计。后端服务端提供统一接口服务负责用户认证、业务处理、数据持久化和文件上传。核心功能介绍1. 登录注册管理员后台登录。学生小程序登录。学生小程序注册。登录成功后保存简单 Token用于后续接口访问。2. 微信小程序端功能首页展示公告资讯、申请统计、可申报类别和快捷入口。学生可选择实践类别并提交学分申请。申请内容包含项目名称、实践时间、成果等级、申请学分、成果说明。支持选择并上传证明材料。我的申请支持按状态查看申请记录。申请详情展示审核状态、认定学分、审核意见和证明材料。个人中心展示学生账号信息支持退出登录。3. 后台管理员端功能后台管理端共包含 8 个主要模块数据概览统计学生数量、教师数量、申请总量、待审核数量、已认定学分并展示月度申报趋势、类别分布、审核状态、学院分布等图表。学生管理学生信息新增、编辑、删除、查询支持按姓名、学院、专业筛选。教师管理审核教师信息维护包含工号、姓名、学院、职称、负责类别、联系电话。类别管理维护课外创新实践类别和学分规则例如竞赛获奖、科研项目、论文专利、社会实践、志愿服务、创新创业。学分申请查看学生申请列表、筛选申请状态、查看申请详情、编辑申请信息、删除异常记录。审核认定对申请进行通过、驳回、退回修改处理填写审核意见和认定学分。公告资讯发布申报通知、政策说明和工作安排。系统用户维护管理员、审核员、学生账号并查看操作日志。4. 后端服务功能统一接口响应封装。跨域访问配置。本地上传资源映射。登录注册接口。学生、教师、类别、公告、用户等基础 CRUD 接口。学分申请提交、查询、修改、删除接口。审核认定与审核记录接口。数据概览统计接口。文件上传接口。技术栈介绍后端技术Java 1.8Spring Boot 2.7.18Maven 3.6.3MyBatis-PlusMySQL 8.xLombokJackson后台管理端技术Vue 2Vue RouterVuexElement UIAxiosEChartsSassNode.js 16微信小程序端技术原生微信小程序WXMLWXSSJavaScriptwx.requestwx.uploadFile数据库MySQL字符集utf8mb4排序规则utf8mb4_general_ci项目结构c271 ├─ admin 后台管理员端 Vue 项目 │ ├─ public 页面入口 │ ├─ src │ │ ├─ api 后台接口封装 │ │ ├─ components 通用组件 │ │ ├─ router 路由配置 │ │ ├─ store 登录状态管理 │ │ ├─ utils 请求工具 │ │ └─ views 后台页面 │ ├─ package.json 前端依赖配置 │ └─ vue.config.js Vue 项目配置 │ ├─ backend Spring Boot 后端项目 │ ├─ pom.xml Maven 依赖配置 │ └─ src │ └─ main │ ├─ java/com/jay/credit │ │ ├─ common 通用响应和 Token 工具 │ │ ├─ config 跨域、资源映射、异常处理配置 │ │ ├─ controller 接口控制器 │ │ ├─ dto 请求参数对象 │ │ ├─ entity 数据库实体 │ │ ├─ mapper MyBatis-Plus 数据访问接口 │ │ ├─ service 业务接口 │ │ ├─ service/impl 业务实现 │ │ └─ vo 返回视图对象 │ └─ resources │ └─ application.yml 后端配置文件 │ ├─ db 数据库脚本 │ ├─ schema.sql 建库建表脚本 │ └─ data.sql 初始化数据脚本 │ ├─ miniprogram 微信小程序端 │ ├─ pages 小程序页面 │ │ ├─ login 登录注册 │ │ ├─ home 首页 │ │ ├─ apply 学分申报 │ │ ├─ applications 我的申请 │ │ ├─ detail 申请详情 │ │ └─ profile 个人中心 │ ├─ utils 请求工具 │ ├─ app.js 小程序入口逻辑 │ ├─ app.json 小程序页面配置 │ └─ app.wxss 全局样式 │ ├─ README.md 项目说明 └─ requirements.txt 相关库列表数据库设计数据库名称practice_credit数据库脚本位置db/schema.sql数据库和表结构初始化脚本。db/data.sql系统初始化数据脚本。两份 SQL 文件开头均已添加SET NAMES utf8mb4;1. sys_user系统统一用户表用于保存管理员、审核员、学生的登录账号信息。主要字段id主键。username登录账号。password登录密码。role角色包含ADMIN、TEACHER、STUDENT。real_name真实姓名。phone联系电话。status账号状态。create_time、update_time创建和更新时间。2. student_info学生扩展信息表用于保存学生学籍和学分统计信息。主要字段user_id关联用户 ID。student_no学号。real_name学生姓名。gender性别。college学院。major专业。class_name班级。grade年级。total_credit已认定总学分。3. teacher_info教师审核员扩展信息表用于保存教师和审核员资料。主要字段user_id关联用户 ID。teacher_no工号。real_name教师姓名。college所属学院。title_name职称。responsible_category负责审核类别。phone联系电话。4. credit_category创新实践学分类别表用于维护可申报的课外创新实践类别和学分规则。主要字段name类别名称。code类别编码。max_credit最高认定学分。rule_desc认定规则说明。status启用状态。sort_order排序值。5. credit_application学分申请表用于保存学生提交的学分申请主信息。主要字段student_id学生用户 ID。student_name学生姓名。category_id类别 ID。category_name类别名称。project_name项目名称。project_time实践时间。level_name级别或等级。description成果说明。apply_credit申请学分。approved_credit最终认定学分。status申请状态包含PENDING、APPROVED、REJECTED、RETURNED。submit_time提交时间。audit_time审核时间。6. application_material申请证明材料表用于保存每条申请对应的证明材料信息。主要字段application_id申请 ID。file_name原始文件名。file_path文件访问路径。file_type文件类型。upload_time上传时间。7. audit_record审核记录表用于保存申请审核过程中的操作记录。主要字段application_id申请 ID。auditor_id审核人 ID。auditor_name审核人姓名。action审核动作包含APPROVE、REJECT、RETURN。opinion审核意见。credit认定学分。audit_time审核时间。8. notice公告资讯表用于保存后台发布的通知公告。主要字段title公告标题。content公告内容。type_name公告类型。status发布状态。publish_time发布时间。9. operation_log后台操作日志表用于保存后台关键操作记录。主要字段user_id操作人 ID。username操作账号。module_name模块名称。action_name操作名称。detail操作详情。ipIP 地址。create_time操作时间。启动教程1. 准备环境需要提前准备以下环境JDK 1.8Maven 3.6.3MySQL 8.xNode.js 16微信开发者工具2. 初始化数据库进入 MySQL 后依次执行source db/schema.sql; source db/data.sql;也可以在命令行中按顺序导入mysql -uroot -p db/schema.sql mysql -uroot -p practice_credit db/data.sql3. 修改后端数据库配置打开backend/src/main/resources/application.yml根据本机 MySQL 情况修改spring: datasource: url: jdbc:mysql://localhost:3306/practice_credit?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue username: root password: root4. 启动后端服务进入后端目录cd backend启动服务mvn spring-boot:run默认后端接口地址http://localhost:8088上传文件默认保存目录backend/uploads5. 启动后台管理端进入后台管理端目录cd admin安装依赖npm install启动后台npm run serve默认访问地址http://localhost:8081后台默认账号账号admin 密码1234566. 启动微信小程序端使用微信开发者工具打开miniprogram小程序后端地址配置文件miniprogram/app.js默认接口地址baseUrl: http://localhost:8088小程序学生测试账号账号2022010101 密码123456也可以在小程序登录页注册新的学生账号。主要接口说明登录注册接口POST /api/auth/admin/login管理员登录。POST /api/auth/mini/login小程序学生登录。POST /api/auth/mini/register小程序学生注册。POST /api/auth/logout退出登录。后台统计接口GET /api/admin/dashboard/overview后台数据概览。基础数据接口GET /api/admin/students学生列表。POST /api/admin/students新增学生。PUT /api/admin/students修改学生。DELETE /api/admin/students/{id}删除学生。GET /api/admin/teachers教师列表。POST /api/admin/teachers新增教师。PUT /api/admin/teachers修改教师。DELETE /api/admin/teachers/{id}删除教师。GET /api/categories类别列表。POST /api/categories新增类别。PUT /api/categories修改类别。DELETE /api/categories/{id}删除类别。申请与审核接口GET /api/applications申请列表。GET /api/applications/{id}申请详情。POST /api/applications提交申请。PUT /api/applications修改申请。DELETE /api/applications/{id}删除申请。GET /api/admin/audits审核记录列表。POST /api/admin/audits提交审核结果。公告与系统接口GET /api/notices公告列表。POST /api/notices新增公告。PUT /api/notices修改公告。DELETE /api/notices/{id}删除公告。GET /api/admin/users用户列表。POST /api/admin/users新增用户。PUT /api/admin/users修改用户。DELETE /api/admin/users/{id}删除用户。GET /api/admin/logs操作日志列表。POST /api/upload上传证明材料。开发注意事项项目路径可以包含中文后端文件上传使用 Java 原生路径处理方式。后端配置中上传目录使用相对路径便于项目移动到其他电脑。数据库脚本已使用utf8mb4可正常保存中文内容。后台管理端通过vue.config.js代理后端接口。小程序端如需真机调试需要将miniprogram/app.js中的baseUrl改为可访问的局域网地址或服务器地址。当前系统不涉及深度学习模型部署。开发作者作者Jay定制联系 vxJay8059开发日期2026年