Initial commit

This commit is contained in:
2026-06-05 17:46:51 +08:00
commit c04c890186
96 changed files with 6477 additions and 0 deletions

146
SETUP.md Normal file
View File

@@ -0,0 +1,146 @@
# 汪圈小程序 — 上线部署指南
## 前置条件
1. 微信公众平台账号 → 注册小程序,记录 **AppID**
2. 开通 **微信云开发**,记录 **云环境 ID**
3. 安装 **微信开发者工具** (1.06+)
4. Node.js 16+
---
## 第一步:填入配置
**a) `project.config.json`**
```json
"appid": "你的小程序 AppID"
```
**b) `miniprogram/utils/constants.ts`**
```ts
export const CLOUD_ENV = '你的云环境 ID'
```
---
## 第二步:初始化云开发数据库
在微信开发者工具 → 云开发控制台 → 数据库,新建以下集合:
| 集合名 | 权限设置 | 说明 |
|--------|----------|------|
| `users` | 所有用户可读,仅创建者可写 | 用户档案 |
| `pets` | 所有用户可读,仅创建者可写 | 宠物档案 |
| `posts` | 所有用户可读,仅创建者可写 | 帖子 |
| `likes` | 仅创建者可读写 | 点赞记录 |
| `comments` | 所有用户可读,仅创建者可写 | 评论 |
| `follows` | 仅创建者可读写 | 关注关系 |
| `messages` | 仅创建者可读写 | 私信 |
| `topics` | 所有用户可读,仅管理员可写 | 话题热度 |
**`posts` 集合需要建立以下索引:**
- `authorId` (单字段)
- `createdAt` (单字段,降序)
- `location.latitude` + `location.longitude` (复合,附近功能)
---
## 第三步:部署云函数
在开发者工具中,右键每个云函数目录 → **上传并部署(云端安装依赖)**
```
cloudfunctions/
├── login ← 必须先部署
├── getPosts
├── createPost
├── getNearbyPets
├── likePost
├── updateLocation
└── sendGreeting
```
---
## 第四步:配置云存储目录
云开发控制台 → 存储,无需额外配置,代码自动按以下路径上传:
- `posts/` — 帖子图片
- `avatars/` — 用户头像
**建议设置存储 CDN 加速**(在控制台开启)。
---
## 第五步:小程序隐私配置
在微信公众平台 → 设置 → 服务类目,选择:`社交 > 同城社交`
**「用户隐私保护指引」** 中声明以下数据使用:
- 位置信息(附近功能)
- 昵称、头像(展示用户身份)
- 相机、相册(发帖上传图片)
---
## 第六步:本地调试
```bash
# 打开微信开发者工具
# 导入项目:选择 wangquan/ 目录
# 填入 AppID
# 点击「编译」
```
---
## 环境变量清单
| 位置 | 字段 | 说明 |
|------|------|------|
| `project.config.json` | `appid` | 小程序 AppID |
| `utils/constants.ts` | `CLOUD_ENV` | 云环境 ID |
| `pages/login/login.ts` | `YOUR_PRIVACY_URL` | 隐私政策页面 URL |
| `pages/login/login.ts` | `YOUR_TERMS_URL` | 用户协议页面 URL |
---
## 项目目录说明
```
wangquan/
├── miniprogram/
│ ├── app.ts/json/wxss # 全局入口、配置、样式
│ ├── pages/
│ │ ├── feed/ # 广场(信息流 + 故事圈)
│ │ ├── nearby/ # 附近(地图 + 列表双视图)
│ │ ├── post/ # 发布动态
│ │ ├── friends/ # 汪友(关注/粉丝)
│ │ ├── profile/ # 我的(宠物档案 + 动态)
│ │ ├── login/ # 登录授权
│ │ ├── pet-detail/ # 用户/宠物详情页
│ │ └── chat/ # 私聊
│ ├── components/
│ │ └── post-card/ # 帖子卡片(广场/我的复用)
│ ├── custom-tab-bar/ # 自定义底部导航(含中间 FAB
│ ├── utils/ # api / auth / format / constants
│ └── types/ # TypeScript 类型定义
└── cloudfunctions/
├── login # 登录 → 自动创建用户
├── getPosts # 帖子列表(关注/附近/热门)
├── createPost # 发帖(含话题统计)
├── getNearbyPets # 地理围栏查询附近用户
├── likePost # 原子点赞/取消
├── updateLocation # 心跳更新在线位置
└── sendGreeting # 打招呼(含 5min 防刷)
```
---
## 后续扩展建议
- **评论系统**`getComments` + `addComment` 云函数,参考 `getPosts` 结构
- **搜索**:云开发支持 `where._.all()` 全文检索,或接入腾讯云搜索
- **推送通知**:微信订阅消息 (`wx.requestSubscribeMessage`)
- **宠物档案编辑**:新建 `pages/pet-edit/` 页面,调用 `updatePet` 云函数
- **性能优化**:为 `posts` 集合开启 CDN 缓存,大流量时接入腾讯云 COS 存储