Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序 #78

Open
atorber opened this issue Apr 12, 2021 · 11 comments

Comments

@atorber
Copy link

atorber commented Apr 12, 2021

开源软件供应链点亮计划

“开源软件供应链点亮计划-暑期2021”(以下简称 暑期2021)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。

根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2021”活动奖金和奖杯。

官网:summer.iscas.ac.cn

Wechaty

Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的4年中,服务了数万名开发者,收获了 Github 的 8000 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。

基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序

背景介绍

目前有大量各种活动俱乐部使用微信群组织活动,发起接龙报名以及进行会员管理等。

俱乐部中大多采用传统的接龙方式进行活动报名,因个别群成员误操作经常出现接龙信息混乱、错误等情况,且活动信息、报名信息不能很好的留存和统计。

我们在本次 Summer 2021 的项目中,希望可以开发一个基于 Wechaty 的群组管理微信小程序。

需求介绍

  1. 使用微信小程作为俱乐部和活动管理后台,利用 Wechaty 将微信群及成员同步在小程序中创建同名俱乐部,并使用小程序作为后台管理活动及成员;

  2. 使用任意 Wechaty Puppet 实现微信机器人,支持群成员通过关键词指令 如 报名、取消名等报名活动;

  3. 小程序端发布活动、截止报名、活动开始等可以自动推送消息到对应微信群与成员进行互动。

项目难度

低(奖金:6000元)

导师联系方式

  • 鲁玉超:物联网行业产品经理、微信小程序群组大师开发者(atorber@163.com

项目产出目标

每日代码 commit

每周提交一份 report (回复本 issue)

每两周一次在线会议

每两周至少发布一个 开发版本

最终实现小程序发布上线,至少能够满足羽毛球俱乐部活动群内机器人报名管理的需求

项目技术栈

javasscript programming language

Git

微信小程序开发云开发

node.js/npm

@mangguo188
Copy link

[开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序] 进度报告

日期:2021-07-04

本周完成的成果

  1. 创建并初始化项目,在微信开发者工具中完成获取用户授权的代码编写
  2. 完成前期环境的初步搭建

本周遇到的困难和需要配合的地方

  1. 在预览GitHub自己所发的博客时先决条件获取存在困难
  2. 对命令提示符的使用不够熟练

下周的开发计划和预计成果

  1. 预计完成bot预览及引入
  2. 搭建小程序第一页面,完成初始化页面设计

其他需要说明和同步的事项

暂无

@mangguo188
Copy link

[开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序] 进度报告

日期:2021-07-18

本周完成的成果

  1. 进行期初项目报告的提交
  2. 熟悉git的初级使用方法,了解PR的基础操作

本周遇到的困难和需要配合的地方

  1. 对于如何取消已发布的PR存在疑惑
  2. md文档编写时多次格式出错,尤其是细节方面总结不够到位

下周的开发计划和预计成果

  1. 预计完成bot预览及引入
    2.从开发微信小程序入手,推进小程序学习

其他需要说明和同步的事项

暂无

@mangguo188
Copy link

项目中期报告

项目信息

项目名称

开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序

方案描述

技术要求:Linux/JavaScript/NodeJS/Git
项目所含模块:

模块 功能 备注
群管理 创建群组/群成员管理 利用wechaty机器人在小程序中同步建群
用户管理 用户基本信息/身份绑定 微信信息与小程序内用户自动绑定
群主发布活动 创建活动/基本信息填写/限制设定  
群主管理活动 同时管理多个活动/操作活动状态/修改活动信息 node-schedule
成员报名活动 报名/取消  
帮助 关键词回复/关键词关联操作 微信对话开放平台
互动操作 活动相册  

时间规划

第一阶段 设计小程序的基本框架
7/1-7/7 引入chatbot;整理基础用法/开发生产环境/用户协议
7/8-7/14 确定1-2条各功能块实现路径,列出技术难点;绑定用户数据到俱乐部
7/15-7/20 使用微信对话开放平台实现“关键词回复”功能

第二阶段 实现群主&群成员操作功能块
7/20-7/26 实践“群主发布活动”功能;调试
7/27-8/2 实践“群主管理活动”功能;调试
8/3-8/9 实践“成员报名活动”功能;调试
8/10-15 完善优化以上功能块

第三阶段 互动操作功能实现
8/16-8/22 实践“活动相册”功能;调试
8/23-8/29 实践“帮助”功能(将关键词与操作关联,要求提高容错性)
8/30-9/5 邀请志愿者使用小程序;检查基础功能漏洞;设计自设定功能

第四阶段 添加功能块&检查完善
9/6-9/12 实践自设定功能;调试
9/13-9/19 邀请志愿者使用小程序;收集程序运行中出现的问题
9/20-9/26 针对问题完善程序功能
9/27-9/30 小程序整体优化升级(着重用户数据处理)

@atorber
Copy link
Author

atorber commented Aug 21, 2021

项目中期报告

项目信息

项目名称

开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序

方案描述

技术要求:Linux/JavaScript/NodeJS/Git
项目所含模块:

模块 功能 备注
群管理 创建群组/群成员管理 利用wechaty机器人在小程序中同步建群
用户管理 用户基本信息/身份绑定 微信信息与小程序内用户自动绑定
群主发布活动 创建活动/基本信息填写/限制设定  
群主管理活动 同时管理多个活动/操作活动状态/修改活动信息 node-schedule
成员报名活动 报名/取消  
帮助 关键词回复/关键词关联操作 微信对话开放平台
互动操作 活动相册  

时间规划

第一阶段 设计小程序的基本框架
7/1-7/7 引入chatbot;整理基础用法/开发生产环境/用户协议
7/8-7/14 确定1-2条各功能块实现路径,列出技术难点;绑定用户数据到俱乐部
7/15-7/20 使用微信对话开放平台实现“关键词回复”功能

第二阶段 实现群主&群成员操作功能块
7/20-7/26 实践“群主发布活动”功能;调试
7/27-8/2 实践“群主管理活动”功能;调试
8/3-8/9 实践“成员报名活动”功能;调试
8/10-15 完善优化以上功能块

第三阶段 互动操作功能实现
8/16-8/22 实践“活动相册”功能;调试
8/23-8/29 实践“帮助”功能(将关键词与操作关联,要求提高容错性)
8/30-9/5 邀请志愿者使用小程序;检查基础功能漏洞;设计自设定功能

第四阶段 添加功能块&检查完善
9/6-9/12 实践自设定功能;调试
9/13-9/19 邀请志愿者使用小程序;收集程序运行中出现的问题
9/20-9/26 针对问题完善程序功能
9/27-9/30 小程序整体优化升级(着重用户数据处理)

@atorber atorber closed this as completed Aug 21, 2021
@atorber
Copy link
Author

atorber commented Aug 21, 2021

中期审核意见
项目完成度:能够按原计划实施项目,基本功能框架按要求完成
学生参与度:积极主动,能够积极参与
代码贡献量:一般
综合评价及建议:项目基本符合预期,下一步需加快业务功能实现进度,保证最终交付

@lijiarui lijiarui reopened this Aug 26, 2021
@lijiarui
Copy link
Member

@atorber Please keep this issue open until OSPP program is finished :)

@mangguo188
Copy link

中期 Demo day

期中汇报的视频 https://b23.tv/R6npFU

LiveCoding https://b23.tv/qMkDPK

@lijiarui
Copy link
Member

lijiarui commented Sep 1, 2021

Hi, @mangguo188 Please upload to youtube as well, looking forward to the youtube link!

Thanks.

@mangguo188
Copy link

项目结项报告

项目信息

项目名称

开发基于 Wechaty 实现微俱乐部会员&活动管理的微信小程序

方案描述

技术要求:Linux/JavaScript/NodeJS/Git
项目所含模块:

模块 功能 备注
群管理 创建群组/群成员管理 利用wechaty机器人在小程序中同步建群
用户管理 用户基本信息/身份绑定 微信信息与小程序内用户自动绑定
群主发布活动 创建活动/基本信息填写/限制设定  
群主管理活动 同时管理多个活动/操作活动状态/修改活动信息 node-schedule
成员报名活动 报名/取消  
帮助 关键词回复/关键词关联操作 微信对话开放平台
互动操作 活动相册  

时间规划

第一阶段 设计小程序的基本框架
第二阶段 实现群主&群成员操作功能块
第三阶段 互动操作功能实现
第四阶段 添加功能块&检查完善

遇到的问题及解决方案:

1.启动小程序后仅出现授权页面,授权后无应有显示。
方案:本项目需要小程序与机器人一同登录,只有机器人持有者登入小程序,界面才会正确显示。找到云开发日志中机器人持有者发布的消息,将其wxid赋值给小程序使用者(小程序使用者原先的wxid是系统自动生成的数字,仅保证wxid唯一,但无意义)。
2.云函数编写过程中常出现错误,但是错误查找需要提交运行,时间周期长且提交次数有限,需要发掘更好检验错误的方法。
方案:在老师的建议下,我先在机器人中模拟后端返回,将函数编写在机器人服务中,检验函数的正确性,当所有函数运行完毕无错后再在后端更改相应函数,此举大大减少了云函数的上传次数,降低电脑负荷。
3.本项目仅对文本信息可做出响应反馈,对于超链接、图片、视频等消息无法提取有效信息。
方案:暂时搭建响应超链接、图片、视频的框架,后续功能待有时间可持续开发。
4.编写完成后,小程序的云开发部分与前端部分与机器人位于同一文件夹下,两者分别不明晰,加上每个文件夹下都有index.js文件,极易出现修改错误。
方案:将小程序封装到mp文件夹下,机器人封装到wechatbot文件夹下,使两者功能可以分开使用,也易连接(需要注意的是,由于小程序云函数封装到mp文件夹下,从微信开发者工具上查看时只需要打开mp文件夹,不然会出现无法部署的问题)。

项目展望:

本项目仅完成基础功能开发,目前使用者进入小程序可以随时查看群活动与该群内成员id,包括报名记录等便利统计数据的内容。但将基本框架已搭建完毕,后续有时间可加更多功能模块,包括如何将群机器人与小程序1对1的关系解开,方便更多小程序使用者简便获取活动管理功能等。

项目成果:

https://github.com/mangguo188/wechaty-club-management

@mangguo188
Copy link

结项 Demo

期中汇报的视频 https://youtu.be/eSgaD32njVw

国内链接> https://b23.tv/R6npFU

LiveCoding https://youtu.be/5LZ08re5YR8

国内链接> https://b23.tv/qMkDPK

@atorber
Copy link
Author

atorber commented Oct 13, 2021

项目结项审核

初审导师:鲁玉超
审核时间:2021-10-13 17:48:59
审核意见:

  • 项目完成度:项目基本按原定方案完成功能开发,主体功能完成,项目可以独立部署和稳定运行
  • 学生参与度:学生在项目实施过程中是能够积极参与,主动性较高,可以按要求和进度完成工作
  • 代码贡献量:本项目学生提供的代码量在50%以上
  • 综合评价及建议:基本完成了既定方案的功能开发,规划的拓展功能、创新功能仍有迭代优化空间

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants