Files
mindfulness/README.md
吕新雨 049995692d init
2026-01-28 20:50:17 +08:00

145 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 一期功能
1APP-PUSH 推送功能
定时推送情绪文字(如:正念短句、温柔提醒)
支持推送策略:
固定时间推送
用户可自定义推送时间
推送内容可由后台配置与更新
2iOS 小组件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.xAsync
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 idcom.damer.mindfulness.dev
main 分支触发 prod 包构建bundle idcom.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 # 部署后端