上一篇我写了这个产品的基本思路。这一篇,我来把它拆成可以动手做的事。
不做 PPT,不做概念图。直接写功能清单、优先级、用户流程、界面描述——这些东西你可以直接拿去跟前端/后端对需求。
一、产品定位再确认
先说清楚这个产品不是做什么的:
- 不是一个”朋友圈”——不要做发帖、点赞、评论
- 不是一个”交友平台”——不要做左滑右滑、匹配
- 不是一个”找工作的 App”——不要在首页放招聘入口
它是一个”组局工具”。用户打开 App 的唯一目的:找到一个人或者一群人,去做一件具体的事。
所有设计围绕这个目的。其他的一切都是为这个目的服务的辅助功能。
二、MVP 功能清单(按优先级分三层)
P0——必须做,没有就不能上线
| 功能 | 说明 | 为什么是 P0 |
|---|---|---|
| 手机号注册登录 | 实名制,安全底线 | 没有实名就无法建立信任 |
| 发布组局 | 选择时间、地点、运动类型、人数上限、费用 | 这是产品的核心动作 |
| 浏览附近组局 | 列表 + 地图,按运动类型筛选 | 用户打开 App 第一件事 |
| 报名组局 | 一键报名,报名后自动入群 | 组局的”成交”动作 |
| 查看个人主页 | 显示运动偏好、历史参与记录 | 陌生人之间的信任依据 |
| 取消/退出组局 | 报名后可以取消 | 基础交互完整性 |
| 消息通知 | 报名成功、组局变更、即将开始 | 保证活动不出现空跑 |
P1——上线后一个月内必须加
| 功能 | 说明 |
|---|---|
| 组局评价系统 | 活动结束后双方互评,建立信用 |
| 个人签到 | 活动结束点”签到”,证明参与 |
| 历史记录 | 我参与的、我组织的、我报名但未去的 |
| 场地推荐 | 内置热门场地列表、价格、空位查询 |
| 取消组局(组织者) | 组织者可以取消或延期组局 |
| 紧急联系人 | 活动页面展示组织者/参与者的应急联系方式 |
P2——用户量达到一定规模再加
| 功能 | 说明 |
|---|---|
| 装备商城 | 篮球、球衣、钓具等 |
| 活动保险 | 一键购买运动意外险 |
| 勋章/成就系统 | 连续打卡、参与次数、运动类型徽章 |
| 排行榜 | 城市活跃排名、运动达人 |
| 内容社区 | 活动照片分享、经验帖(不是朋友圈) |
| 企业招聘入口 | 脱敏后的用户画像,对接招聘 |
三、用户流程设计
流程一:报名一个组局
1 | 打开 App |
用户从打开 App 到完成报名,不超过 3 次点击。
流程二:组织一个组局
1 | 点击底部"发起"按钮 |
组织一个组局,不超过 30 秒。
流程三:活动结束后
1 | 组织者点击"签到" |
签到是强制的——组织者不点签到,报名者不会收到评价请求。这保证了双方都有动力完成闭环。
四、关键界面描述
首页(组局列表)
顶部:一个搜索栏,支持按场地名、运动类型搜索。
下方:卡片列表,每张卡片包含:
- 运动图标(篮球/足球/钓鱼…)
- 标题(”下午篮球约”)
- 时间(”今天 15:00-17:00”)
- 地点(”浦东新区·东方体育中心”)
- 人数(”3/6人”,带进度条)
- 费用(”50元/人”或”免费”)
- 组织者头像 + 昵称 + 信用分
- 底部按钮”报名”
顶部标签栏:全部 / 篮球 / 足球 / 钓鱼 / 跑步 / 羽毛球 / 骑行 / 其他。
组局详情页
顶部:运动图标 + 标题 + 组织者信息
中间:
- 时间块(开始、结束时间)
- 地点块(地图缩略图 + 地址 + 导航按钮)
- 费用说明
- 人数进度(”3/6人已报名,2人已去”)
- 组织者备注(自由文字)
- 已报名者列表(头像 + 昵称)
- 组织者历史活动记录(最近 3 次活动的参与人数和评价)
底部:大按钮”报名”
个人主页
顶部:头像 + 昵称 + 信用分 + 所在地
中间:
- 运动偏好标签(篮球、钓鱼、跑步)
- 数据(累计参与活动数、组织活动数、签到率)
- 最近参与的活动列表
- 最近组织的活动列表
- 装备展示(可选,自己上传的运动装备照片)
底部:
- “发起组局”按钮(如果用户有资格组织)
- “修改资料”按钮
五、核心数据模型
用户表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | UUID | 主键 |
| phone | string | 手机号,唯一 |
| nickname | string | 昵称 |
| avatar | string | 头像 URL |
| location | geo | 经纬度 |
| id_verified | bool | 是否实名认证 |
| created_at | datetime | 注册时间 |
组局表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | UUID | 主键 |
| organizer_id | UUID | 组织者 |
| sport_type | enum | 篮球/足球/钓鱼… |
| title | string | 标题 |
| description | text | 备注 |
| start_time | datetime | 开始时间 |
| end_time | datetime | 结束时间 |
| location | geo | 地点 |
| venue_name | string | 场地名称 |
| capacity | int | 人数上限 |
| fee | decimal | 费用 |
| status | enum | 报名中/进行中/已结束/已取消 |
| created_at | datetime | 创建时间 |
报名表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | UUID | 主键 |
| activity_id | UUID | 组局 |
| user_id | UUID | 用户 |
| status | enum | 已报名/已签到/已取消/缺席 |
| checkin_at | datetime | 签到时间 |
| created_at | datetime | 报名时间 |
评价表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | UUID | 主键 |
| activity_id | UUID | 组局 |
| from_user_id | UUID | 评价者 |
| to_user_id | UUID | 被评价者 |
| rating | int | 1-5 星 |
| comment | text | 评价内容 |
| created_at | datetime | 评价时间 |
这个数据模型足够支撑 MVP 的全部功能。
六、几个容易忽视的细节
细节一:报名者的”后悔权”
报名了但临时有事怎么办?
- 活动开始前 2 小时:允许自由取消,不扣分
- 活动开始前 30 分钟:允许取消,扣信用分
- 活动开始后:不允许取消,缺席记录留痕
规则必须明确,且报名时就要提示。
细节二:组织者取消/延期
组织者临时有事,活动怎么办?
- 允许延期一次(时间向后推)
- 报名者收到通知后可以退出或继续参与
- 如果活动最终取消,所有报名者自动收到通知,组织者的信用分扣分
细节三:群聊在哪里
组局之后怎么沟通?
建议:报名成功后,App 自动建一个微信小程序群(或 App 内置群),组织者将参与者拉进去。
不自己搭一套 IM 系统——那是巨大的工作量,而且是 MVP 不需要的。用微信/企微/群组就够了。
细节四:费用怎么收
组织者先收钱还是活动后结算?
建议:组织者垫付,报名者到场地支付。或者活动前通过微信转账。App 不做支付,不碰钱。
碰钱就意味着你要做支付合规、资金管理、财务系统——这些不是 MVP 该做的事。
细节五:信用分的初始值
新用户信用分给多少?
建议:100 分。不是 0 分。
0 分会让新用户觉得”我什么都没做就被降分了”。100 分给用户一个正向起点,然后通过行为(签到率、评价)来调节。
细节六:地理位置怎么展示
不要精确到”经纬度”。
对外展示时只显示到”区域”级别(比如”浦东新区”),只有报名后才显示精确位置。保护组织者安全。
七、上线清单
上线前必须准备好的事:
- 10 个种子用户,已经通过线下认识
- 5 个真实组局,数据录入系统
- 1 个运营人员(你自己),负责初期用户管理
- 一份《社区公约》,明确哪些行为会被封号
- 一份《安全须知》,活动前推送给用户
- 一个客服通道(微信群),处理投诉和异常
- 服务器就绪,域名备案完成
MVP 不需要融资,不需要团队,不需要广告。你需要的是 5 个真实组局的数据,和 10 个真实用户的好评。
有了这些,你才有资格说”这个产品成立了”。
八、上线后的第一个月
上线后第一个月的核心指标不是”用户数”,而是:
组局完成率:发起 100 个组局,完成(有签到)多少个?
目标:60% 以上。低于 60% 说明组局不成立。复购率:参与过一次的用户,一个月内有参与第二次吗?
目标:30% 以上。低于 30% 说明用户觉得”没什么意思”。口碑推荐:每个老用户推荐了几个新用户?
目标:1.5 以上。低于 1.5 说明产品不值得推荐。
这三个指标通过了,再考虑”怎么做推广”。
这三个指标没通过,继续打磨产品,不要急着烧钱获客。