# Mindfulness（正念 APP）📱

本项目面向宝妈群体，提供情绪价值与正念练习支持。
客户端采用 React Native + Expo，后端采用 Python + FastAPI，数据库 MySQL，任务调度 Celery，推送/定时等功能完整支持。

# git提交
git add .
git commit -m '备注'
git push origin

获取最新分支
git pull

# 创建自己的分支
git checkout -b 姓名拼写

# 目录结构

/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        # 部署后端 




