1. 项目背景与核心价值
双相情感障碍作为一种常见的精神健康问题,影响着全球约1-2%的人口。这类患者往往面临着情绪剧烈波动的困扰,在躁狂期和抑郁期之间反复切换。传统的线下心理咨询存在预约难、费用高、地域限制等问题,而普通社交平台又缺乏专业的情绪管理工具和安全的交流环境。
这个项目正是为了解决这些痛点而设计的。通过Flask后端提供稳定的数据服务,Vue前端构建友好的交互界面,我们打造了一个集情绪记录、社区交流、专业资源获取于一体的垂直平台。与通用社交软件相比,它具有以下独特优势:
- 情绪波动预警系统:通过用户日常记录的情绪数据,结合简单算法识别可能的发作前兆
- 安全交流机制:内容审核+关键词过滤+危机干预流程,避免触发负面情绪
- 资源整合中心:聚合各地专业机构信息、自助工具包、紧急联系方式等实用资源
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 前后端分离方案选型
选择Flask+Vue的组合主要基于以下考量:
后端技术栈选择理由:
- Flask轻量灵活,适合快速迭代的精神健康类应用
- SQLAlchemy提供可靠的数据关系映射
- JWT实现安全的身份验证
- Marshmallow确保API数据序列化的规范性
前端技术栈优势:
- Vue的响应式特性适合动态情绪数据展示
- Vuex管理复杂的状态变化(如用户情绪状态)
- Element UI提供可访问性良好的基础组件
- Axios处理API请求的拦截和错误处理
python复制# Flask后端示例路由
@app.route('/api/mood-records', methods=['POST'])
@jwt_required()
def create_mood_record():
data = request.get_json()
record = MoodRecord(
user_id=get_jwt_identity(),
mood_level=data['level'],
notes=data.get('notes')
)
db.session.add(record)
db.session.commit()
return jsonify({"message": "记录成功"}), 201
2.2 关键数据模型设计
用户情绪数据采用星型模型设计:
- 核心事实表:mood_records(记录时间、情绪数值、附加说明)
- 维度表:users(用户基础信息)、triggers(触发因素字典表)
- 特殊设计:emergency_contacts(紧急联系人单独存储)
mermaid复制(此处原为mermaid图表,按规范已移除,改为文字说明)
数据关系说明:
1. 用户(User)可以创建多条情绪记录(MoodRecord)
2. 每条记录可关联多个触发因素(Trigger)
3. 每个用户可设置多个紧急联系人(EmergencyContact)
3. 核心功能实现细节
3.1 情绪跟踪日历组件
前端采用FullCalendar库实现可视化日历:
- 不同情绪强度使用色阶呈现(从深蓝到深红)
- 点击日期弹出快速记录浮层
- 双击查看历史详情记录
javascript复制// Vue组件关键配置
calendarOptions: {
initialView: 'dayGridMonth',
dateClick: this.handleDateClick,
events: this.moodEvents,
eventColor: '#4a6da7'
}
3.2 社区安全交流机制
多层内容过滤系统设计:
- 前端预处理:输入框实时检测高危关键词(如"自杀"、"自残")
- 后端验证:使用敏感词库进行二次过滤
- 人工审核队列:疑似高风险内容进入待审状态
- 危机干预流程:触发关键词时自动通知用户设置的紧急联系人
重要提示:所有过滤逻辑需要定期与心理咨询师共同更新词库,避免过度拦截正常表达
4. 安全与隐私保护方案
4.1 数据加密策略
- 传输层:强制HTTPS+HSTS
- 存储加密:用户敏感信息使用AES-256加密
- 日志脱敏:自动移除识别个人身份的信息
4.2 隐私保护措施
- 严格的访问控制策略(RBAC模型)
- 匿名化数据分析选项
- 数据导出自动生成PDF而非可编辑格式
5. 部署与运维实践
5.1 服务器配置建议
- 独立部署心理咨询师管理后台
- 使用Redis缓存高频访问的资源数据
- 每日自动备份到加密存储桶
5.2 监控指标设置
必监控的三类指标:
- 系统健康度:API响应时间、错误率
- 用户安全:触发危机干预的次数
- 参与度:DAU、平均记录频率
6. 实际运营中的经验总结
经过三个月试运行,我们收获了这些宝贵经验:
-
情绪记录的最佳实践:
- 设置每日提醒推送(但允许关闭)
- 提供快速选择标签(如"工作压力"、"睡眠不足")
- 允许导出数据供医生参考
-
社区管理技巧:
- 培养积极用户作为版主
- 定期组织主题讨论(需专业人士参与)
- 建立分级警告制度
这个项目让我深刻体会到技术可以如何温暖地服务于特殊需求群体。一个小细节:我们原生的情绪选择器只有1-10的数字等级,后来根据用户反馈增加了表情符号选择,记录率立即提升了27%。在精神健康领域,有时看似小的交互改进能带来巨大的使用体验提升。
