智心树洞是一个基于微信小程序的心理咨询与互动平台,旨在为学生提供一个安全、私密或公开的表达空间,并连接教师提供专业的心理支持。
本项目包含微信小程序前端和 Python Flask 后端。主要功能包括:
- 问题广场:公开提问、浏览热门话题、互动讨论。
- 树洞投递:向指定教师进行私密咨询或投递到公开广场。
- 个人中心:管理个人信息、查看历史提问与回复、教师工作台。
- 内容审核:接入微信官方文本安全校验,公开内容需教师人工审核后展示。
- 框架: 微信小程序原生框架 (WXML, WXSS, JS, JSON)
- UI风格: 自定义设计系统 (CSS Variables),清新绿色主调
- 特性:
- 自定义组件与页面容器
- CSS3 动画与过渡
- 响应式布局
- 微信开放能力集成 (头像/昵称获取)
- 框架: Python Flask
- 数据库: MySQL (SQLAlchemy ORM)
- 异步任务: Celery + Redis
- 部署: Docker & Docker Compose
SecretBox/
├── pages/ # 小程序页面目录
│ ├── index/ # 首页/广场页
│ ├── post/ # 投递相关页面 (选导师/创建)
│ ├── square_post/ # 广场专用投稿页
│ └── profile/ # 个人中心页
├── server/ # 后端代码目录
│ ├── app.py # Flask 应用入口
│ ├── Dockerfile # 后端镜像构建
│ ├── docker-compose.yml # 容器编排
│ └── ...
├── app.js # 小程序全局逻辑
├── app.json # 小程序全局配置
├── app.wxss # 小程序全局样式
└── project.config.json # 开发者工具配置
- 定向投递: 选择指定教师进行私密咨询。
- 星空树洞: 也可投递到树洞,由教师接力回复。
- 投递表单 (
pages/post/create):- 支持匿名/实名切换。
- 字数统计与表单验证。
- 文本先走微信官方内容安全校验。
- 月历排班: 查看当月已占用的预约时段。
- 我的预约: 学生可直接查看个人预约记录,并在开始前取消。
- 教师管理: 教师可查看“我发起的预约”和“预约我的”记录。
- 学生申请制: 学生通过个人中心提交管理员申请,填写微信号和说明。
- 教师邀请制: 已有教师可按微信号创建管理员邀请。
- 最高管理员: 支持在服务器配置文件中按 openid / 微信号维护超级管理员名单。
- 前端入口已移除,公开互动模块正在重构。
- 当前主要保留私密投递、树洞信箱、预约与管理能力。
- 用户管理:
- 支持微信头像/昵称同步与自定义修改。
- 角色展示 (学生/教师)。
- 学生视图:
- 查看“我的投递”列表及状态。
- 提交管理员申请并查看审核状态。
- 教师视图 (权限控制):
- 树洞信箱入口。
- 预约管理。
- 投递对象管理。
- 管理员管理。
- 数据导出功能。
- 下载并安装 微信开发者工具。
- 导入项目目录
SecretBox。 - 修改
appid(在project.config.json中) 为你自己的测试 AppID 或使用测试号。 - 编译预览。
- 进入
server目录。 - 复制环境变量模板:
cp config.env.template config.env并配置数据库信息。
- 其中
WX_APP_ID和WX_APP_SECRET需要填写真实小程序配置,否则微信登录与官方内容安全校验不会生效。
- 启动服务:
docker-compose up -d --build
- 样式: 使用
var(--variable-name)调用app.wxss中定义的全局变量,保持视觉一致性。 - 交互: 重要的操作需提供 Loading 反馈或 Toast 提示。
- 导航: TabBar 页面使用
wx.switchTab,非 TabBar 页面使用wx.navigateTo。
欢迎提交 Issue 或 Pull Request 来改进这个树洞!