Mindfulness(正念 APP)📱
本项目面向宝妈群体,提供情绪价值与正念练习支持。 客户端采用 React Native + Expo,后端采用 Python + FastAPI,数据库 MySQL,任务调度 Celery,推送/定时等功能完整支持。
目录结构
/mindfulness ├── client/ # 客户端(React Native + Expo) ├── server/ # 后端(FastAPI) ├── infra/ # 基础设施(Docker / k8s / nginx 等) ├── scripts/ # 构建、部署脚本 ├── .gitea/ # Gitea Runner CI/CD 配置 └── README.md # 本文档
1. 功能概览
1.1 一期功能
1)APP-PUSH 推送功能
定时推送情绪文字(如:正念短句、温柔提醒)
支持推送策略:
固定时间推送
用户可自定义推送时间
推送内容可由后台配置与更新
2)iOS 小组件(Widget)
小组件展示:
当前情绪文字
背景图片/渐变色
支持多种尺寸(小/中/大)
可配置刷新频率(例如:每小时/每天)
3)情绪卡片滑动功能
APP 内展示情绪卡片列表
支持左右滑动(类似 Tinder 卡片)
滑动后显示下一张情绪卡片
可收藏/分享(可作为后续迭代功能)
2. 技术栈(建议版本)
2.1 客户端
React Native + Expo
TypeScript
React Navigation
Zustand(或 Redux Toolkit)
Axios(或 Fetch)
Expo Notifications(推送)
Expo Widgets(小组件)
Expo 使得 iOS 开发更轻量,适合你这种“AI 友好 + 快速迭代”的项目。
2.2 后端
Python + FastAPI
SQLAlchemy 2.x(Async)
MySQL 8.0
Alembic(数据库迁移)
Celery + Redis(定时推送任务)
Pydantic v2(请求/响应校验)
pytest(单元测试)
OpenAPI(自动文档)
3. 环境区分(dev / pro)
客户端使用 .env.dev 和 .env.prod 管理环境变量
后端使用 .env.dev 和 .env.prod 管理数据库、缓存、第三方服务等
.env 文件不提交到 Git,仓库中提供 .env.example 作为模板
打包/部署通过环境变量决定使用 dev 或 prod 配置
3.1 本项目代理(本机 7897)
如果你需要让本项目在安装依赖/拉取资源时走本机代理(如 Clash),本仓库根目录已提供 .envrc,默认指向 127.0.0.1:7897。
在仓库根目录执行(对当前终端会话生效):
source ./.envrc
验证是否生效(任选其一):
echo $HTTP_PROXY
echo $ALL_PROXY
4. CI / CD(推荐方案)
- 客户端打包并推送到 dev/prod
dev 分支触发 dev 包构建(bundle id:com.damer.mindfulness.dev)
main 分支触发 prod 包构建(bundle id:com.damer.mindfulness)
- 后端构建 Docker 镜像(dev/prod)
dev 分支构建 :dev 镜像
main 分支构建 :prod 镜像
- 后端部署(dev/prod)
dev 分支部署到 dev 环境
main 分支部署到 prod 环境
目录
├── .gitea/workflows # gitea runner 配置(建议) │ ├── client-build.yml # 打包并推送至 testflight │ ├── server-build.yml # 后端构建镜像推送至docker hub │ └── server-deploy.yml # 部署后端