情绪日记:一个全栈心理健康应用的诞生——项目总结与复盘
《情绪日记:一款心理健康助手的全栈开发实践》摘要 本文记录了由9人学生团队开发的"情绪日记"全栈应用开发过程。项目采用uni-app+Vue2前端、Node.js+Express后端和MySQL数据库的技术栈,实现了情绪记录、树洞社区、AI心理辅导等功能模块。作为项目组长,作者不仅完成了前端记录页开发(包括情绪可视化图表和AI助手集成),还负责项目联调、团队管理和技术协调工作。
作为项目组长,我带领8人团队从0到1打造了一款集情绪记录、树洞社区、AI心理辅导于一体的全栈应用。本文记录了我们的技术选型、协作流程以及我个人在其中的成长。
一、项目背景:为什么做“情绪日记”?
在快节奏的校园生活中,情绪压力常常被忽视。我们团队观察到身边很多同学有记录情绪、倾诉烦恼的需求,却缺少一个安全、私密且智能的平台。于是,我们决定开发一款心理健康助手应用,让用户能够:
-
每日记录情绪,可视化了解自身状态;
-
在树洞社区匿名/实名倾诉,获得同伴鼓励;
-
借助AI助手获得即时心理支持;
-
浏览心理资源文章、视频,自助成长。
项目历时1个月,团队9人,从需求讨论、数据库设计、前后端开发到联调部署,完整经历了一个软件工程全流程。
二、技术栈概览
我们采用了当下主流的前后端分离架构:
| 层级 | 技术 | 说明 |
|---|---|---|
| 前端 | uni-app + Vue2 | 一套代码编译到微信小程序、H5、App |
| 后端 | Node.js + Express | 提供RESTful API及WebSocket服务 |
| 数据库 | MySQL | 包含用户、日记、树洞、评论、情绪记录等8张表 |
| AI集成 | 讯飞星火大模型 | 通过WebSocket实现情绪分析与实时对话 |
| 工具链 |
Git进行版本管理,Navicat设计数据库,Swagger编写接口文档 |
三、团队分工(快速回顾)
-
A同学:启动页、登录注册、树洞广场及详情页
-
B同学:情绪记录首页、情绪统计(uCharts图表)、心理资源模块
-
C同学:日记列表、富文本编辑、日记详情
-
D同学:我的页面、通用组件(导航栏、弹窗等)
-
E同学:数据库设计(7张核心表)、SQL优化、测试数据(100+条)
-
F同学:后端基础架构、用户认证、日记管理接口
-
G同学:后端树洞社区、情绪记录、心理资源、统计接口
-
H同学:测试、联调、部署
-
I同学:答辩PPT、功能规格说明书
而我的角色是项目组长,同时负责前端记录页(情绪记录、AI助手、情绪日历、资源统计)以及项目联调、前后端整合。
四、我的核心贡献
1. 前端记录页开发——让情绪可视化
我独立完成了“记录”模块的全部页面与交互:
-
情绪记录首页:采用日历视图,用户可点击日期快速记录当天情绪,情绪类型以表情符号展示,直观友好,并且可以根据日历查看过往的心情。
-
情绪记录详情:设计情绪选择器(6种情绪,可快速选择当日情绪),支持文字备注和标签,数据实时保存。
-
情绪统计:调用后端统计接口,使用
uCharts绘制情绪趋势折线图与分布饼图,帮助用户洞察情绪变化规律。 -
AI助手:基于WebSocket与讯飞星火大模型集成,实现实时聊天。我封装了WebSocket客户端,处理心跳、重连、流式消息展示,用户可与AI进行多轮心理对话,获得即时疏导。
-
心理资源模块:对接资源列表与详情接口,有文章,视频,热线三种方式。
2. 项目联调与整合——打通前后端“任督二脉”
作为组长,我承担了最繁琐但也最关键的联调工作:
-
协调接口规范:与F、G两位后端同学约定统一的RESTful风格(如
/api/resource/list),制定错误码规范(200成功,400参数错误,500服务器错误),确保前端调用一致。 -
跨域与代理:在uni-app中配置开发环境代理,解决本地调试跨域问题;生产环境通过Nginx转发。
-
WebSocket统一管理:由于多个页面需要AI对话,我设计了一个单例的WebSocket管理器,集中处理连接建立、消息分发、断线重连,避免多个页面重复创建连接。
-
数据流梳理:梳理各模块数据依赖,例如情绪统计需要同时从
mood_record表和diary表聚合,我与后端沟通后设计了专门的统计接口,前端一次调用即可渲染图表。 -
Bug追踪与修复:组织每日站会,收集H同学测试出的bug,分配修复任务,并复现前后端不一致的问题(如时间格式、空值处理),推动统一处理。
3. 团队管理——从“散装”到“成型”
作为组长,我需要确保项目按时交付:
-
制定开发计划:将项目拆解为四个阶段:数据库设计→核心API→前端页面→联调测试,每个阶段设置里程碑。
-
代码规范:要求前端使用eslint + prettier,后端统一错误处理中间件,数据库字段命名采用snake_case。
-
文档沉淀:推动I同学编写功能规格说明书,同时要求每位开发者在代码中写注释,并在联调后更新接口文档。
-
情绪激励:在赶工阶段组织团建,缓解压力;遇到技术难题时,组织技术分享会,让F同学讲Express中间件原理,E同学讲索引优化,大家共同进步。
五、项目亮点与技术难点
🌟 亮点
-
AI赋能心理健康:集成讯飞星火大模型,用户可与AI实时对话,获得情绪分析和建议,这成为应用的一大特色。
-
情绪可视化:通过图表展示情绪趋势,让用户直观看到自己的心理状态变化,增强自我认知。
-
数据库设计合理:使用外键约束保证数据一致性,通过触发器自动更新帖子评论数,用视图简化复杂统计查询。
💥 项目遇到的挑战与解决方案
-
AI接口调试难题:初次接触讯飞星火大模型API,对请求参数、返回格式及WebSocket连接逻辑不熟悉。我们团队共同查阅官方文档,用Postman逐一测试接口,反复调试参数配置,最终成功完成集成,并实现AI流式消息的流畅展示;
-
情绪统计性能优化:初期情绪统计接口需关联多张数据表查询,响应时间长达3秒,影响用户体验。我与E同学协作,通过优化SQL语句、添加合适的数据库索引,将查询时间优化至500ms以内,大幅提升应用流畅度;
-
多人协作冲突问题:前后端并行开发时,接口定义频繁变动,导致前端开发受阻。我们约定接口变更及时在微信群同步,前端通过mock数据先行开发,待接口稳定后再替换为真实接口,有效提升开发效率;
-
页面兼容性问题:由于团队成员开发风格不同,初期各页面视觉样式不统一。我统一调整全局样式、规范组件使用标准,确保整个应用的视觉一致性,提升用户体验。
六、项目成果与反思:沉淀经验,稳步前行
📌 项目成果
-
功能完整落地:成功完成最初规划的5大核心模块(情绪记录、树洞社区、AI助手、心理资源、个人中心),所有功能可正常运行、无核心Bug;
-
数据支撑完善:测试阶段累计生成模拟数据1000+条,覆盖各类使用场景,为后续功能优化提供了数据参考;
-
团队共同成长:每位成员都完整经历了从需求分析到项目部署的全流程,技术能力、协作能力和问题解决能力均得到大幅提升,实现了“项目落地+个人成长”的双重目标。
🤔 反思与改进
回顾整个项目开发过程,虽然顺利完成交付,但仍有可优化的地方:如果再来一次,我会在项目初期就投入更多精力在单元测试和自动化部署上,编写单元测试用例覆盖核心功能,搭建自动化部署流程,减少手动测试和部署的成本,让项目更健壮、更易维护。同时,在需求梳理阶段,可进一步细化需求文档,减少开发过程中的需求变更,提升开发效率。
七、作为组长的收获
这次项目让我深刻体会到:技术是骨架,沟通是血脉。作为组长,不仅要自己写代码,更要确保团队信息透明、目标一致。我学会了:
-
如何将模糊的需求拆解成可执行的任务;
-
如何在技术选型时权衡利弊;
-
如何在进度压力下保持冷静,并鼓励团队;
-
最重要的是,如何倾听每个人的想法,让大家在项目中找到成就感。
“情绪日记”不仅是我们的课程作业,更是我们送给同龄人的一份温暖礼物。希望它能在某个深夜,陪伴一颗需要安慰的心。
附: 如果你对我们的项目感兴趣,欢迎在评论区交流技术问题!也特别感谢团队每一位伙伴的全力以赴与默默付出 ❤️
更多推荐

所有评论(0)