# 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`。 在仓库根目录执行(对当前终端会话生效): ```bash source ./.envrc ``` 验证是否生效(任选其一): ```bash echo $HTTP_PROXY echo $ALL_PROXY ``` # 4. CI / CD(推荐方案) 1. 客户端打包并推送到 dev/prod dev 分支触发 dev 包构建(bundle id:com.damer.mindfulness.dev) main 分支触发 prod 包构建(bundle id:com.damer.mindfulness) 2. 后端构建 Docker 镜像(dev/prod) dev 分支构建 :dev 镜像 main 分支构建 :prod 镜像 3. 后端部署(dev/prod) dev 分支部署到 dev 环境 main 分支部署到 prod 环境 ## 目录 ├── .gitea/workflows # gitea runner 配置(建议) │ ├── client-build.yml # 打包并推送至 testflight │ ├── server-build.yml # 后端构建镜像推送至docker hub │ └── server-deploy.yml # 部署后端