30分钟内快速搭建团队专属的每日一题

1,252 阅读4分钟

img

前言

读完本篇文章,你将会收获

  1. netify 的使用
  2. 如何配置钉钉机器人做消息推送
  3. 搭建个人或者团队用的每日一题


从某天开始,掘金以及很多地方都涌出 xxx 每日1题,然后各种算法题面试题满天飞,但是这些资源都属于外部资源。这时候就开始萌生出一个想法,想要做出自己团队内部使用的做题系统, 让小伙伴们都能在岁月中留下自己奋斗的脚印。

但又由于没有服务器,所以后续是依靠 **netify **去做的一个算是 serverless 的项目来进行线上部署。

在实现钉钉推送的时候发现,只能服务端去请求,所以用到了它的 云函数。在写项目的过程中也使用到了挺多的最佳实践,以及 vue3 中的 compotision api 提前去体验了 vue3  的特性, setup  函数返回的形式。

如果你想为你的团队带来一些活力,那么欢迎您按照本教程去搭建属于自己前端团队的题库~ 

如果本教程对您有帮助,也希望您能给项目点上一个 star ,您的 star 就是对我后续持续输出的最大的动力!



比较遗憾的是。

这个系统在团队内部运行了约三个月,后面团队人员流失到其他部门,就没继续下去了。

还是说点正能量点的事情吧!

这也是第一次这么正式的写文章介绍项目。

首先,我们比较关注的一点是,**每日一题 **能为团队,为个人带来什么?

对团队而言: 建立团队公共话题,增强团队凝聚力以及团队成员的职业素养(代码质量)。可以以周为单位,开展团队的 每日一题 周分享会,让写的比较牛逼的同学分享下思路等等。当然,题目不仅仅是算法,也可以是任何的软技能问题,随你发挥。

对个人而言:增强自我职业素养(代码质量),以及可以向团队中比较牛逼的同学学习(抱大腿)~

前言的最后,纪念一下曾经的辉煌! 传送门

DING_TOKEN 准备(可选)

这个功能是用来同步发题消息到群里的, 并不是必须的。如果你需要这个功能,则可以看这段描述。

点开你的dingding群

然后智能助手,添加机器人

image.png

选择机器人类型

image.png

保存 access_token

image.png

填写所需参数

image.png

仓库准备

记录题目的仓库

flok  此仓库到您的仓库列表或者是组织列表,后续的题目都会发到此仓库作为记录存在。

github.com/cjfff/daily…

发题系统

仓库地址: github.com/cjfff/spaas…

这里的部署变量有几个

变量名 描述
VUE_APP_APP_NAME 系统题目
VUE_APP_GITHUB_OWNER 个人仓库作者或者组织名称, 比如上面的仓库地址,就为 cjfff
VUE_APP_GITHUB_REPO_NAME 仓库名称
DING_TOKEN 钉钉机器人的 token
git clone https://github.com/cjfff/daliy-publish-system.git 

或者 flok 此仓库到你自己的仓库


接下来我们来接入 netify ,使用它所提供的能力对我们的发题系统进行部署.

 为了节省篇幅,这里 项目接入 netify 的教程就另开一个文章了~ 传送门

登陆 token 获取

生成后,记得自己保存一份。登陆一次后就会存在 localStorage 中

image.png


如何做题

做题还是在本地编码为主吧,毕竟团队交流还是需要以线下为主,这样才能更好的活跃团队氛围,线上的只是做个记录,让后面的同学能进行相应的学习解题思路等。

发题系统功能介绍

发题预备

image.png

预备发布(使用了闭包保存了数据,失败的时候可以从失败的步骤开始重来)

image.png

题目详情

image.png

标签管理

image.png

关于安全问题

其实是不存在别人登陆也能操作的,因为对方没有写仓库的权限,另外想要团队一起玩的话,推荐创建组织,以获得更好的体验。

如何运营?

每天使用发题系统发布题目后,团队成员可以在线下做题,然后分享做题成果,团队成员可以上 github-issue 进行查看阅读点赞。

适当的进行定期分享讲解~

结语

看到这里,你应该已经能构建出属于你自己或者个人的题库了,给自己一点掌声鼓励一下👏。欢迎各位大佬的 pr 以及反馈帮助我改善此项目

TODO

  1. 增加撤回相关功能
  2. typeScript 迁移