# People红包DAPP改造开发介绍

By [Xing](https://paragraph.com/@xing824) · 2021-12-23

---

背景
--

该项目起源及背景，包括产品的介绍可以参考[此链接](https://mirror.xyz/0x8eC46A6d1AFda45f5A334Fe85016FB39D9D8Caee/XNqb_FsKKfwhuYhGqBO72m6jmhUEnqXfX0s-nPkE4P8)，我们要做的产品原型可以参考[目前版本](https://redenvelop.app/)，但需要优化。

产品使用跟微信红包使用类似，不过这里为了让大家都有一个全面的了解，再简单阐述下该红包产品使用的流程：

1.  创建红包
    
    1.  进入红包[创建页面](https://redenvelop.app/GiftNow)
        
    2.  选择发送Token类型（BSC上所有ERC20协议的Token）
        
    3.  输入发送数量（例如想发100个People）
        
    4.  输入红包个数（允许多少个人领取）
        
    5.  选择是公开/私有红包（公开红包所有人都可以领取；私有红包需要指定领红包人的地址，被指定的钱包地址才可以领取）
        
    6.  红包充值（需要先让ERC20Token合约Approve这笔交易，才可以创建红包）
        
    7.  创建红包成功（得到红包ID，用于分享至他人领取）
        
2.  分享红包
    
    1.  红包创建后有一个分享地址（该地址带有红包ID信息）
        
    2.  将该地址通过各种社交软件发送给向赠送红包的用户
        
    3.  等待用户打开红包
        
3.  打开红包
    
    1.  用户点击链接后，进入红包[领取页面](https://redenvelop.app/GiftNow?type=1&id=3)
        
    2.  点击领取后得到红包中Token奖励
        
4.  奖励红包（目前是使用MambaCoin领取奖励，会改成使用People奖励）
    
    1.  创建的每个红包存在24小时有效期
        
    2.  24小时内只有被指定人可以领取
        
    3.  24小时后如果红包没被领完，所有人可以使用People去领取一份红包
        
5.  红包撤回
    
    24小时后，如果红包没有被领完，红包发送人可以选择[撤回红包](https://redenvelop.app/GiftNow/?type=2&id=3)剩余的Token
    

People产品设计
----------

建议按照目前[https://redenvelop.app/](https://redenvelop.app/)的网站结构，在此基础上进行优化。

People红包产品需要改造的工作
-----------------

### 合约部分

*   修改为使用People领取奖励红包
    
*   合约中会存有People收益（我现在计划是把它burn掉）
    
*   People的BSC合约地址（币安刚上架People，应该不久就会有）
    

### 后端部分

后端的工作主要是同步区块链上的数据，展示给前端用户。比如[红包列表页面](https://redenvelop.app/RedEnvelop/)和[红包详情页面](https://redenvelop.app/RedEnvelop/3)。

这两个展示信息的页面获取的数据是从后端接口获取的，同时提供了每笔交易在链上的链接，方便用户检查。

后端服务会有一个线程去BSC链上同步红包相关的信息，持久化储存并提供接口供前端访问。

### 前端部分

**合约部分**和**后端部分**的改造工作量很少，之前我都搞定了。前端部分改造的工作量是最大的，目前产品的前端是我让一个朋友帮忙弄的，功能可用（使用流程可以参考），仅支持桌面端，比较粗糙。

我希望我们的产品可以做到像Uniswap那样简洁易用，并且同时支持**桌面端**和**手机端**（毕竟点红包的分享链接主要是由手机端完成）。

这里需要招募**两个前端人员**来帮忙开发，一个人负责**项目信息模块**，另外一个人负责**产品使用模块**。

**项目信息模块**：

*   主页
    
    建议照着[Uniswap的网站](https://uniswap.org/)结构套个模版。介绍部分包含：
    
    *   红包产品介绍
        
    *   PeopleDAO背景介绍
        
    *   FAQ
        
    *   Community链接
        
    *   红包列表链接
        
    *   红包DAPP链接
        
    
    各个介绍的文案我可以帮忙提供，不过如果有专业文案的人愿意来做的话更好。
    
*   红包列表页
    
    用于展示现在链上所有已发红包列表，以及红包详情，方便用户查看。包括什么类型的Token，数量是多少，领取进度，是否过期等信息。
    
    这部分信息需要调用后端服务接口，接口文档后续我会提供。
    

**项目信息模块**这部分工作绝大多数前端开发者都能做，欢迎对审美比较偏执，且有一定设计基础的前端开发者。

**产品使用模块**：

这部分页面的工作只会与合约进行交互，没有任何中心化服务端接口的请求，页面设计和交互可以参考[Uniswap的APP页面](https://app.uniswap.org/#/swap)。

与红包合约的交互主要就四个功能：**发红包**、**领红包**、**领奖励红包**、**撤回红包。与ERC20 Token合约交互只需要**Approve，Allowance等即可。

另外连接钱包的时候，需要可以自动增加BSC网络的配置，以及可以自动切换BSC网络。

**产品使用模块**这部分工作需要小伙伴有合约、钱包交互相关的经验（熟悉web3js），欢迎对交互和使用细节有洁癖的小伙伴加入。

工作安排
----

相信大家对这个项目改造的需求有了一定认识，如果有兴趣参与的小伙伴请与我联系。下一步我的工作会是：

1.  确认前端开发人员
    
2.  修改合约代码
    
3.  提供接口文档和合约调用文档
    
4.  提供现有产品的前端源码供参考
    
5.  PeopleDAO的github上创建红包DAPP项目
    
6.  搭建testnet环境供前端测试
    

个人感觉在确定好人员之后，开发一周内可以完成，哈哈哈（不知道是不是太乐观，因为如果有相关开发经验且有现产品代码可以参考应该很快）。在People确定BSC的链上Token地址之后就可以上线了。

希望元旦前能完成，这样可以给大家发新年红包！

---

*Originally published on [Xing](https://paragraph.com/@xing824/people-dapp)*
