# student_dash **Repository Path**: ftb001/student_dash ## Basic Information - **Project Name**: student_dash - **Description**: 中小学生餐食关联系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生管理系统 (Student Dash) ## 项目简介 学生管理系统是一个基于 Spring Boot 和 Vue 3 的前后端分离全栈应用,旨在为学校提供一套完整的学生信息管理解决方案。系统集成了人工智能助手功能,支持智能问答、数据分析、报表生成等高级特性,帮助教师和家长更高效地管理学生相关信息。 本系统主要面向学校管理员、教师和家长三类用户群体,提供了完善的用户权限管理体系。管理员可以管理所有用户账号和系统数据,教师可以查看所带班级的学生信息和就餐记录,家长可以查询自己孩子的在校情况。系统还特别引入了 AI 智能助手,基于 OpenAI 大语言模型构建,能够回答用户关于学生信息、课程安排、营养膳食等方面的各类问题,提供个性化的咨询服务。 ## 功能特性 ### 用户管理模块 系统提供了完整的用户管理功能,支持多种用户角色的管理。用户角色包括系统管理员、教师和家长三种类型,不同角色拥有不同的操作权限。管理员可以创建、修改和删除用户账号,设置用户的角色和关联的班级或学生信息。教师账号可以关联所负责的班级,方便查询学生数据和发布通知。家长账号可以关联自己孩子,实现家庭与学校的信息互通。用户登录采用 JWT(JSON Web Token)进行身份认证,支持 Token 过期机制和主动登出功能,确保用户会话的安全性。 ### 学生信息管理 学生管理模块实现了对学生基本信息的全面管理,包括学生姓名、性别、出生日期、所在班级等核心字段。系统支持分页查询、条件筛选等高级查询功能,教师和管理员可以快速定位到目标学生。每条学生记录都包含创建时间和更新时间戳,由系统自动维护。班级信息采用级联设计,删除班级时会检查是否存在关联学生,防止数据不一致。学生信息支持逻辑删除,保留历史数据记录,便于后续数据追溯和分析。 ### 班级管理 班级管理模块提供了班级信息的增删改查功能,支持按年级和班级名称进行分类管理。每个班级包含班级名称、所属年级、班主任信息等关键数据。系统实现了班级与教师的关联关系,一个教师可以负责多个班级,一个班级也可以有多位任课教师。班级信息被广泛应用于学生分组、成绩统计、就餐管理等多个业务场景,是整个系统的核心基础数据之一。 ### 餐饮计划管理 餐饮计划是系统的核心功能模块之一,主要用于管理学生的日常膳食安排。餐饮计划包含了食物名称、食物类型、供应时间等基本信息,并与营养成分信息进行关联。系统支持按日期查询餐饮计划,方便食堂工作人员准备食材,也便于家长了解孩子的日常饮食情况。每份餐饮计划可以关联多种营养成分,实现营养均衡的膳食搭配。餐饮计划还与消费记录关联,支持按班级和时间段统计用餐情况。 ### 餐饮消费管理 餐饮消费模块记录了每位学生的用餐情况,包括用餐学生、用餐计划、消费数量、消费时间等详细数据。该模块支持分页查询和多条件筛选,可以按班级、学生姓名、日期范围等维度进行数据检索。系统提供了消费报表生成功能,能够统计指定班级在过去若干天内的餐饮消费情况,生成直观的消费数据报表。这些报表数据对于学校了解学生饮食偏好、优化餐饮服务具有重要参考价值。 ### 营养成分管理 营养成分模块用于管理食物的营养信息,支持营养成分的增删改查操作。每条营养记录包含营养成分名称、含量等数据,可以被多个餐饮计划引用。系统通过中间表实现了营养成分与餐饮计划的多对多关联关系,确保数据结构的灵活性和规范性。营养成分数据被 AI 助手用于回答用户关于膳食营养方面的问题,帮助家长和教师了解学生的营养摄入情况。 ### 食品类型管理 食品类型模块提供了食物分类管理功能,用于对各类食物进行分类标识。常见的食品类型包括主食、蔬菜、肉类、水果、奶制品等。食品类型与餐饮计划关联,通过分类可以更好地组织和展示餐饮信息。该模块支持基本的增删改查操作,删除时会检查是否存在关联的餐饮计划,防止误删导致数据问题智能助手 系统。 ### AI 集成了基于 LangChain4j 架构和 阿里百炼平台的 AI 大模型的 AI 智能助手功能,为用户提供智能化的咨询服务。AI 助手采用 Spring AI 框架构建,支持流式输出,响应速度快,用户体验好。助手集成了多个业务工具,包括用户信息查询工具、学生信息查询工具、营养信息查询工具、餐饮计划查询工具和消费记录查询工具。当用户提出相关问题时,AI 助手能够自动调用相应的工具获取实时数据,并结合大语言模型的理解能力,给出准确、专业的回答。AI 助手支持会话记忆功能,通过 Redis 存储对话上下文,实现连续性对话。 ## 技术架构 ### 后端技术栈 后端采用 Spring Boot 框架构建,版本号为 3.x,充分利用了 Spring Boot 的自动配置和约定优于配置的特性。数据访问层使用 MyBatis-Plus 框架,简化了 SQL 编写工作,提供了强大的条件构造器和自动填充功能。数据库采用 MySQL,存储系统的核心业务数据。缓存层使用 Redis,不仅用于数据缓存,还存储 AI 对话的会话记忆。安全认证采用 JWT(JSON Web Token)机制,实现无状态的分布式认证。 AI 功能基于 Spring AI 框架集成 OpenAI 大语言模型,支持同步和流式两种调用模式。系统采用面向工具的设计模式,将业务查询功能封装为 AI 工具,使 AI 能够动态调用后端服务获取实时数据。异常处理采用全局异常处理器模式,统一捕获和处理各类业务异常,返回规范的错误信息。 ### 前端技术栈 前端采用 Vue 3 框架,配合 Vite 构建工具,提供了快速的项目启动和热更新能力。状态管理使用 Pinia 框架,替代了 Vue 2 时代的 Vuex,API 更加简洁直观。路由管理使用 Vue Router,实现单页面应用的页面导航。UI 组件采用原生 HTML 和 CSS 编写,保留了最大的定制灵活性,同时也便于后续引入第三方 UI 库。 前端通过 Axios 与后端 API 进行通信,封装了统一的请求拦截和响应处理逻辑。样式采用 CSS 变量和组合类的方式,实现了主题定制和组件复用。应用采用模块化结构,按功能模块组织代码,便于维护和扩展。 ### 项目结构 项目采用前后端分离的目录结构,根目录下包含两个独立的子项目。backend 目录(student_dash)包含所有后端代码,采用标准的 Spring Boot 分层架构,包括控制器层、服务层、数据访问层等。frontend 目录(dash_vue)包含所有前端代码,按照视图组件、API 接口、状态管理等功能进行组织。两个项目可以独立开发、测试和部署,通过 RESTful API 进行数据交互。 ## 快速开始 ### 环境要求 开发环境需要准备以下软件和工具:JDK 17 或更高版本用于运行 Spring Boot 应用;Node.js 18 或更高版本用于构建 Vue 前端;MySQL 8.0 或更高版本作为主数据库;Redis 6.0 或更高版本用于会话缓存和 AI 记忆存储。此外还需要配置 Maven 或 Gradle 用于后端依赖管理,npm 或 yarn 用于前端包管理。 ### 后端配置 首次使用需要配置数据库连接信息。打开后端项目的配置文件,修改 MySQL 数据库的连接地址、用户名和密码,确保应用能够正确访问数据库。如果使用 Redis 缓存,还需要配置 Redis 的连接信息。配置文件中还包含 JWT 密钥和过期时间等安全相关参数,生产环境需要使用安全的密钥值。 数据库初始化脚本位于项目 resources 目录下,首次运行前需要执行 SQL 脚本创建所需的数据库表结构和初始数据。系统内置了管理员账号,初始用户名和密码可在启动日志中查看。AI 功能需要配置 OpenAI API Key 才能正常使用,建议使用环境变量的方式注入该敏感信息,避免硬编码在配置文件中。 ### 前端配置 前端项目的配置主要在环境变量文件中完成。配置后端 API 的访问地址,确保前端能够正确请求后端服务。开发环境通常配置为本地后端服务地址,生产环境需要配置为实际部署的服务器地址。前端项目支持热重载,开发时可以运行开发模式启动服务,修改代码后会自动刷新页面。 ### 启动步骤 首先启动 MySQL 数据库服务和 Redis 缓存服务,确保两个服务正常运行。然后导入后端项目,使用 Maven 编译构建,运行主启动类启动 Spring Boot 应用。应用启动成功后,控制台会显示服务端口号,默认情况下后端服务运行在 8080 端口。接着进入前端项目目录,安装项目依赖,完成后启动开发服务器。打开浏览器访问前端地址,即可进入学生管理系统首页。 ## 接口说明 系统提供了丰富的 RESTful API 接口,覆盖了所有业务功能的增删改查操作。所有接口均采用 JSON 格式进行数据交换,响应结果包含状态码、消息和数据三个字段。带分页的查询接口统一返回总记录数、总页数和数据列表,便于前端进行分页展示。用户相关接口需要携带 JWT Token 进行身份认证,Token 放在 HTTP 请求头中传递。 主要接口模块包括:用户登录和权限管理接口、学生信息管理接口、班级管理接口、餐饮计划管理接口、餐饮消费管理接口、营养成分管理接口、食品类型管理接口以及 AI 聊天接口。各接口的详细参数和返回值说明请参考源码中的接口定义注释。 ## 使用指南 ### 登录系统 打开系统首页后,首先需要登录才能使用各项功能。在登录页面输入用户名和密码,系统会验证用户身份并生成 JWT Token。登录成功后,Token 会保存在本地存储中,后续请求会自动携带该 Token 进行身份验证。不同角色的用户登录后会看到不同的功能菜单,管理员拥有全部功能权限,教师和家长只能访问其角色范围内的功能。 ### 日常操作 登录后可以按照左侧导航菜单使用各项功能。用户管理页面可以进行账号的创建、编辑和删除操作。班级管理页面可以维护学校班级信息。学生管理页面可以管理在校学生的基本资料。餐饮计划页面用于编排每日的膳食安排,营养成分页面用于维护食物营养数据,消费记录页面记录学生的用餐情况,报表功能可以生成消费数据分析图表。 ### AI 助手使用 AI 助手以悬浮窗的形式常驻在界面上,点击即可展开对话窗口。用户可以用自然语言向 AI 助手提问,例如查询某个班级的学生名单、查看今天的餐饮安排、了解某种食物的营养成分等。AI 助手会理解用户的问题意图,自动调用相应的业务工具获取数据,并生成回答。如果遇到 AI 无法理解的问题,可以尝试换一种表达方式或联系管理员。 ## 注意事项 系统的 JWT Token 具有时效性,长时间未操作需要重新登录获取新 Token。为确保数据安全,请勿在公共电脑上保存登录状态,使用完毕后及时退出登录。AI 功能依赖外部 API 服务,在网络不稳定或 API 服务异常时可能无法正常使用。敏感操作如删除数据会有确认提示,请谨慎操作。数据删除采用逻辑删除方式,被删除的数据仍然存在于数据库中,如有需要可以联系管理员进行恢复。 ## 许可证 本项目采用开源许可证进行发布,详细信息请查阅项目根目录下的 LICENSE 文件。