# LineFunQueue 小程序项目

## 项目概述

LineFunQueue是一款面向排队场景的微信小程序，提供多种互动小游戏，帮助用户在排队等待过程中消遣时间、增进社交互动。产品采用"轻交互、重线下沟通"理念，鼓励用户在现实场景中进行面对面互动。

### 核心理念
- **场景化社交**：针对排队、候车、候诊等等待场景
- **即开即玩**：无需繁琐注册，扫码即可加入游戏
- **线下互动**：促进陌生人面对面交流，打破社交隔阂
- **简单有趣**：低门槛规则，高参与度玩法

## 项目结构

```
miniprogram-lineforfun/
├── client/                  # 小程序客户端
│   ├── config/              # 配置文件
│   ├── src/                 # 源代码
│   │   ├── app.config.ts    # 应用配置
│   │   ├── app.scss         # 全局样式
│   │   ├── app.ts           # 应用入口
│   │   ├── index.html       # HTML模板
│   │   ├── assets/          # 静态资源
│   │   ├── components/      # 通用组件
│   │   ├── constants/       # 常量定义
│   │   ├── hooks/           # 自定义Hooks
│   │   ├── interfaces/      # 类型定义
│   │   ├── pages/           # 页面
│   │   ├── services/        # 服务
│   │   ├── store/           # 状态管理
│   │   ├── styles/          # 样式文件
│   │   └── utils/           # 工具函数
│   └── package.json         # 依赖配置
├── cloud/                   # 云开发目录
│   ├── functions/           # 云函数
│   │   ├── login/           # 登录相关
│   │   ├── room/            # 房间管理
│   │   ├── games/           # 游戏逻辑
│   │   └── pay/             # 支付相关
│   └── database/            # 数据库结构
└── README.md                # 项目说明
```

## 技术架构

### 前端技术栈
- **框架**：Taro 4.x
- **UI库**：React + TypeScript
- **样式**：Sass
- **构建工具**：Vite
- **状态管理**：React Hooks

### 后端技术栈
- **服务器**：微信云开发
- **数据库**：云开发数据库
- **存储**：云开发存储
- **计算**：云函数

## 开发环境搭建

### 前端开发环境
1. 安装Node.js (v16+)
2. 安装包管理工具pnpm
   ```bash
   npm install -g pnpm
   ```
3. 安装项目依赖
   ```bash
   cd client
   pnpm install
   ```
4. 启动开发服务器
   ```bash
   pnpm dev:weapp
   ```
5. 使用微信开发者工具打开项目

### 后端开发环境
1. 创建微信云开发环境
2. 配置云函数和数据库
3. 部署云函数
   ```bash
   cd cloud/functions
   npm install
   ```

## 核心功能模块

### 游戏广场
- 浏览全部游戏
- 分类筛选
- 搜索游戏

### 房间系统
- 创建房间
- 加入房间
- 管理玩家

### 游戏模块
- 海龟汤（主持人视图/玩家视图）
- 更多游戏模板

### 用户系统
- 登录/注册
- 个人中心
- 游戏历史

## 游戏规则说明

### 海龟汤
海龟汤是一种解谜游戏，主持人给出一个奇怪的场景(汤面)，玩家通过提问和推理，尝试理解事件背后的真相(汤底)。游戏流程：
1. 主持人宣读谜题开头(汤面)
2. 玩家提问(只能问是非问题)
3. 主持人回答"是"、"否"或"无关"
4. 玩家持续提问直到猜出答案
5. 主持人揭晓谜底(汤底)

## 如何开发新游戏

1. 在 `client/src/pages/games` 创建新游戏目录
2. 添加主持人和玩家视图组件
3. 在 `client/src/services/game.ts` 添加游戏服务类
4. 在 `cloud/functions/games` 添加对应云函数
5. 在游戏广场中添加游戏卡片
6. 更新路由配置

## 部署说明

### 小程序部署
1. 构建生产版本
   ```bash
   cd client
   pnpm build:weapp
   ```
2. 使用微信开发者工具上传版本
3. 提交审核并发布

### 云函数部署
1. 在微信开发者工具中上传并部署云函数
2. 配置云函数触发器和权限

## 项目维护

### 版本控制
- 使用Git管理代码
- 遵循分支管理规范
- 提交前进行代码审查

### 测试
- 组件单元测试
- 页面交互测试
- 真机兼容性测试

### 性能优化
- 减少包大小
- 优化渲染性能
- 减少网络请求

## 开发规范

### 代码风格
- 使用ESLint和Prettier维护代码质量
- 遵循TypeScript类型定义
- 使用函数组件和Hooks

### 命名规范
- 组件：大驼峰命名(GameCard)
- 文件夹：小写短横线(game-plaza)
- 常量：全大写下划线(MAX_PLAYERS)
- 函数：小驼峰(fetchGames)

### 注释规范
- 组件头部添加用途注释
- 复杂逻辑添加说明注释
- 函数添加参数和返回值注释

## 联系方式

如有问题或建议，请联系项目负责人。
