基于 Flutter Windows + Spring Boot 3 + MyBatis-Plus + Spring Security + JWT + MySQL 的学生管理系统。当前项目主线是 Windows 桌面客户端:用户通过 StudentManage.exe 登录和操作,后端负责认证、权限、业务接口和数据访问。
- 已完成 Windows 桌面客户端基础形态,窗口标题为
学生管理系统,可执行文件名为StudentManage.exe。 - 登录页支持配置后端服务地址,并通过健康检查检测服务是否在线。
- 后端提供 JWT 认证、统一返回结构、全局异常处理、角色权限和关键数据范围控制。
- 已实现院系、专业、班级、教师、学生学籍、课程排课、选课/课表、成绩、用户管理、仪表盘和个人资料。
- 当前适合作为本地演示、课程设计、毕业设计雏形或继续迭代的桌面管理系统基础版本。
- 桌面客户端:
Flutter 3.38+、Dart 3.10+、Provider、GoRouter、Dio - 后端服务:
Java 21、Spring Boot 3.4、Spring Security、MyBatis-Plus - 数据库:
MySQL 8.x
- 登录认证:用户名密码登录、JWT 鉴权、获取当前用户资料、修改本人密码。
- 桌面连接:客户端保存后端地址,支持检测服务在线状态。
- 角色体系:支持
ADMIN、TEACHER、STUDENT三类角色。 - 基础资料:院系、专业、班级、教师、学生、课程、选课、成绩、系统用户的分页查询、详情、新增、修改、删除。
- 学籍能力:维护入学日期、预计毕业日期、学籍状态、邮箱、地址和监护人信息。
- 课程排课:维护课程学期、星期、节次、教室和上课周次。
- 选课课表:管理员维护学生选课关系;教师查看授课名单;学生查看本人课表。
- 批量能力:学生和成绩支持 CSV 模板下载、批量导入、按筛选条件导出。
- 权限控制:学生只能看本人信息、选课课表和成绩;教师只能看本人课程、授课名单并维护本人课程成绩;管理员管理全量数据。
- 桌面体验:角色菜单、仪表盘、个人资料、403/404 状态页、通用 CRUD 表格和动态表单。
StudentManage/
├── Backend/ # Spring Boot 后端服务
├── Frontend/ # Flutter Windows 桌面客户端
├── SQLFile/ # MySQL 初始化脚本
└── docs/ # 接口、权限、部署、桌面客户端和测试文档
执行 SQLFile/init.sql 创建库表并导入演示数据。
默认端口为 8080。建议通过环境变量注入数据库和 JWT 配置:
$env:STUDENT_MANAGE_DB_URL="jdbc:mysql://localhost:3306/student_manage?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"
$env:STUDENT_MANAGE_DB_USERNAME="root"
$env:STUDENT_MANAGE_DB_PASSWORD="你的数据库密码"
$env:STUDENT_MANAGE_JWT_SECRET="替换成足够长的随机密钥"
cd Backend
.\mvnw.cmd spring-boot:run健康检查:
GET http://localhost:8080/api/system/health
cd Frontend
flutter pub get
flutter run -d windows登录页可修改后端服务地址。本地默认连接 http://localhost:8080。
初始化脚本内置以下账号,默认密码均为 123456:
- 管理员:
admin - 教师:
liuzhiqiang、chenxiaodong - 学生:
wanghaoran、lisiqi
# 后端测试
cd Backend
.\mvnw.cmd test
# 前端静态检查与测试
cd Frontend
flutter analyze
flutter test
# Windows 桌面客户端构建
flutter build windows --releaseWindows 构建需要安装 Visual Studio 2022 或 Build Tools,并勾选 Desktop development with C++。