作为项目组长,我带领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同学讲索引优化,大家共同进步。

五、项目亮点与技术难点

🌟 亮点

  1. AI赋能心理健康:集成讯飞星火大模型,用户可与AI实时对话,获得情绪分析和建议,这成为应用的一大特色。

  2. 情绪可视化:通过图表展示情绪趋势,让用户直观看到自己的心理状态变化,增强自我认知。

  3. 数据库设计合理:使用外键约束保证数据一致性,通过触发器自动更新帖子评论数,用视图简化复杂统计查询。

💥 项目遇到的挑战与解决方案

  • AI接口调试难题:初次接触讯飞星火大模型API,对请求参数、返回格式及WebSocket连接逻辑不熟悉。我们团队共同查阅官方文档,用Postman逐一测试接口,反复调试参数配置,最终成功完成集成,并实现AI流式消息的流畅展示;

  • 情绪统计性能优化:初期情绪统计接口需关联多张数据表查询,响应时间长达3秒,影响用户体验。我与E同学协作,通过优化SQL语句、添加合适的数据库索引,将查询时间优化至500ms以内,大幅提升应用流畅度;

  • 多人协作冲突问题:前后端并行开发时,接口定义频繁变动,导致前端开发受阻。我们约定接口变更及时在微信群同步,前端通过mock数据先行开发,待接口稳定后再替换为真实接口,有效提升开发效率;

  • 页面兼容性问题:由于团队成员开发风格不同,初期各页面视觉样式不统一。我统一调整全局样式、规范组件使用标准,确保整个应用的视觉一致性,提升用户体验。

六、项目成果与反思:沉淀经验,稳步前行

📌 项目成果

  • 功能完整落地:成功完成最初规划的5大核心模块(情绪记录、树洞社区、AI助手、心理资源、个人中心),所有功能可正常运行、无核心Bug;

  • 数据支撑完善:测试阶段累计生成模拟数据1000+条,覆盖各类使用场景,为后续功能优化提供了数据参考;

  • 团队共同成长:每位成员都完整经历了从需求分析到项目部署的全流程,技术能力、协作能力和问题解决能力均得到大幅提升,实现了“项目落地+个人成长”的双重目标。

🤔 反思与改进

回顾整个项目开发过程,虽然顺利完成交付,但仍有可优化的地方:如果再来一次,我会在项目初期就投入更多精力在单元测试和自动化部署上,编写单元测试用例覆盖核心功能,搭建自动化部署流程,减少手动测试和部署的成本,让项目更健壮、更易维护。同时,在需求梳理阶段,可进一步细化需求文档,减少开发过程中的需求变更,提升开发效率。

七、作为组长的收获

这次项目让我深刻体会到:技术是骨架,沟通是血脉。作为组长,不仅要自己写代码,更要确保团队信息透明、目标一致。我学会了:

  • 如何将模糊的需求拆解成可执行的任务;

  • 如何在技术选型时权衡利弊;

  • 如何在进度压力下保持冷静,并鼓励团队;

  • 最重要的是,如何倾听每个人的想法,让大家在项目中找到成就感。

“情绪日记”不仅是我们的课程作业,更是我们送给同龄人的一份温暖礼物。希望它能在某个深夜,陪伴一颗需要安慰的心。

附: 如果你对我们的项目感兴趣,欢迎在评论区交流技术问题!也特别感谢团队每一位伙伴的全力以赴与默默付出 ❤️

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐