# SportPal：与本地运动爱好者连接并一起运动

Company: Upwork
Service: 应用开发
Period: 2022-08 - 2022-10
Tech: TypeScript, Expo, React Native, Google Maps, Redux, NestJS, Express.js, GraphQL, MongoDB, Twilio
Canonical: https://webanion.com/zh/portfolio/sportpal-connect-and-play-with-local-sports-enthusiasts

SportPal 让球员看到今晚附近正在进行的球局，并帮助组织者凑齐人数，六周内作为完整产品上线。球员可以以访客身份浏览，想加入时才验证手机号，并报名公开球局或接受私人球局的邀请；组织者决定谁可以加入、需要多少名球员。基于 React Native 和 Expo，支持 iPhone 和 Android，后端采用 NestJS、GraphQL 和 MongoDB，并通过 Twilio 验证。

## 完整故事

一位想找球打的球友，一位凑不齐人的组织者，还有一位需要在几周而不是几个月内得到答案的创始人。

### 球友很多，却找不到彼此

<p>每座城市都有人今晚就想打篮球，只要知道哪里有球局；也有组织者因为两个人没到场，一场球就此泡汤。这些球局散落在各个群聊里，新来的人根本看不到。</p><p>创始人的想法很简单：把附近正在进行的球局展示出来，让任何人都能加入。问题在于球友会不会用，而最快的验证办法，就是把一个真实的产品交到他们手里。</p>

### 今晚的球局，轻点一下就到

<p>一打开应用，球局就已经按球友的思路排好：即将开始、今天、明天、本周末，再按运动项目分类。想打篮球的人能看到每一场即将开始的野球局，以及时间、球场和已经有多少人要去，几秒钟就能决定要不要出门。</p><p>大部分设计精力都花在了这第一个答案上，因为一款基于位置的应用，成败就在于它能多快告诉你附近有什么。</p>

### 先随便看看，想打球时再注册

<p>没有人是为了填表才安装应用的。新用户可以先以访客身份进入，在注册前浏览真实的球局，只有在想加入某一场时才需要验证手机号。之后，My Events 会把球友要参加的球局和自己组织的球局集中在一处，私人球局的邀请则放在单独的标签页里。</p>

### 从下载到上场

<p>整个产品就是一条短短的路径：注册，发现附近有什么球局，报名参加公开球局或接受私人球局的邀请，然后上场打球。凡是不能推动球友沿着这条路径往前走的页面都被砍掉了，一个完整的产品正是这样装进了六周。</p>

### 组织者定规则，球友看得到谁会来

<p>组织者决定这是一场什么样的球局：公开还是私人、欢迎哪些水平的球友、谁可以加入，以及需要多少人。球友出发前就能看到组织者、日期、球场和报名人数，轻点一下就能加入并完成报名。</p><p>对组织者来说，这意味着泡汤的球局更少；对球友来说，再也不会白跑一趟，面对空无一人的球场。</p>

### 用真实产品检验一个想法

<p>对创始人来说，六周换来的不是一份幻灯片，而是一款可以安装、交到球友手中的应用：基于 React Native 和 Expo，支持 iPhone 和 Android，后端采用 NestJS、GraphQL 和 MongoDB，并通过 Twilio 验证手机号，完全按合同约定交付。对于正在衡量一个范围明确的想法能多快落地的创始人，SportPal 就是参考节奏：诚实的范围，六周，上线交付。</p>
