1. 项目概述:老年人膳食营养服务网站管理系统
这个基于Vue.js和SpringBoot的老年人膳食营养服务网站管理系统,是我去年指导计算机专业学生完成的毕业设计项目。作为一个面向老年人群体的膳食管理平台,它解决了三个核心问题:一是帮助老年人科学规划每日饮食,二是为家属提供远程监护功能,三是为社区营养师建立管理后台。
系统采用前后端分离架构,前端使用Vue 2.x + Element UI构建响应式界面,后端采用SpringBoot 2.5 + MyBatis-Plus框架,数据库选用MySQL 8.0。特别针对老年人使用习惯,我们做了字体放大、语音播报、一键求助等适老化设计。实测在红米Note 9(老年机常见型号)上运行流畅,主界面加载时间控制在1.2秒内。
提示:毕业设计类项目需要特别注意文档完整性,我们准备了23页的详细设计说明书、完整的API接口文档、部署手册和答辩PPT模板,这些都会在后续章节提供下载。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能模块设计
2.1 用户端功能实现
前端采用Vue CLI 4.x脚手架搭建,通过axios封装了三种请求拦截:
javascript复制// 请求拦截示例
service.interceptors.request.use(config => {
if (store.getters.token) {
config.headers['X-Token'] = getToken()
}
return config
}, error => {
return Promise.reject(error)
})
主要功能模块包括:
- 智能推荐系统:基于Harris-Benedict公式计算基础代谢率
java复制// Java实现BMR计算 public double calculateBMR(User user) { if("male".equals(user.getGender())){ return 66 + (13.7 * user.getWeight()) + (5 * user.getHeight()) - (6.8 * user.getAge()); } else { return 655 + (9.6 * user.getWeight()) + (1.8 * user.getHeight()) - (4.7 * user.getAge()); } } - 膳食记录:集成ECharts实现营养摄入可视化
- 用药提醒:使用WebSocket实现实时消息推送
2.2 管理后台关键技术
后端采用RESTful API设计,使用Spring Security做权限控制:
java复制@PreAuthorize("hasRole('NUTRITIONIST')")
@PostMapping("/meal-plan")
public Result createMealPlan(@RequestBody MealPlanDTO dto) {
// 营养师专属接口
}
数据库设计特别注意了老年人饮食的特殊需求:
sql复制CREATE TABLE `food_nutrition` (
`id` int NOT NULL AUTO_INCREMENT,
`food_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`suitable_age_min` int DEFAULT NULL COMMENT '适宜年龄下限',
`suitable_age_max` int DEFAULT NULL COMMENT '适宜年龄上限',
`diabetes_flag` tinyint DEFAULT '0' COMMENT '糖尿病适用标记',
`hypertension_flag` tinyint DEFAULT '0' COMMENT '高血压适用标记',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
3. 适老化设计实践
3.1 界面交互优化
针对老年人特点,我们做了这些特殊处理:
- 字体大小动态调节(最小16px)
- 增加高对比度模式
- 所有按钮尺寸≥44×44px(苹果人机指南标准)
- 表单填写错误时有语音提示
通过vuex保存用户偏好设置:
javascript复制// 字体大小存储逻辑
mutations: {
SET_FONT_SIZE(state, size) {
localStorage.setItem('fontSize', size)
state.fontSize = size
document.documentElement.style.fontSize = `${size}px`
}
}
3.2 语音交互实现
使用Web Speech API实现文本朗读:
javascript复制function speak(text) {
const utterance = new SpeechSynthesisUtterance(text);
utterance.rate = 0.8; // 放慢语速
speechSynthesis.speak(utterance);
}
4. 项目部署与调试
4.1 前端部署要点
使用nginx做生产环境部署时,要特别注意路由问题:
nginx复制location / {
try_files $uri $uri/ /index.html;
gzip on;
gzip_types text/plain application/xml text/css application/javascript;
}
4.2 常见问题解决方案
- 跨域问题:SpringBoot后端需添加配置
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
- MySQL时区问题:在连接字符串添加参数
code复制spring.datasource.url=jdbc:mysql://localhost:3306/nutrition?useSSL=false&serverTimezone=Asia/Shanghai
5. 毕业设计增值服务
除了核心代码,我们还准备了这些辅助材料:
- 开题报告模板(含国内外研究现状分析)
- 系统测试用例集(覆盖率达85%)
- 论文查重报告(知网格式)
- 答辩常见问题Q&A清单
数据库初始数据包含:
- 200+种老年适宜食材营养数据
- 30套常见慢性病膳食方案
- 15个预设的老年用户测试账号
重要:所有文档都提供Markdown和Word双版本,方便直接用于论文撰写。系统支持Docker一键部署,内附docker-compose.yml文件。
