init
This commit is contained in:
144
README.md
Normal file
144
README.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 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 # 部署后端
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user