前言
读完本篇文章,你将会收获
- netify 的使用
- 如何配置钉钉机器人做消息推送
- 搭建个人或者团队用的每日一题
从某天开始,掘金以及很多地方都涌出 xxx 每日1题,然后各种算法题面试题满天飞,但是这些资源都属于外部资源。这时候就开始萌生出一个想法,想要做出自己团队内部使用的做题系统, 让小伙伴们都能在岁月中留下自己奋斗的脚印。
但又由于没有服务器,所以后续是依靠 **netify **去做的一个算是 serverless
的项目来进行线上部署。
在实现钉钉推送的时候发现,只能服务端去请求,所以用到了它的 云函数。在写项目的过程中也使用到了挺多的最佳实践,以及 vue3
中的 compotision api
提前去体验了 vue3
的特性, setup
函数返回的形式。
如果你想为你的团队带来一些活力,那么欢迎您按照本教程去搭建属于自己前端团队的题库~
如果本教程对您有帮助,也希望您能给项目点上一个 star
,您的 star
就是对我后续持续输出的最大的动力!
比较遗憾的是。
这个系统在团队内部运行了约三个月,后面团队人员流失到其他部门,就没继续下去了。
还是说点正能量点的事情吧!
这也是第一次这么正式的写文章介绍项目。
首先,我们比较关注的一点是,**每日一题 **能为团队,为个人带来什么?
对团队而言: 建立团队公共话题,增强团队凝聚力以及团队成员的职业素养(代码质量)。可以以周为单位,开展团队的 每日一题 周分享会,让写的比较牛逼的同学分享下思路等等。当然,题目不仅仅是算法,也可以是任何的软技能问题,随你发挥。
对个人而言:增强自我职业素养(代码质量),以及可以向团队中比较牛逼的同学学习(抱大腿)~
前言的最后,纪念一下曾经的辉煌! 传送门
DING_TOKEN 准备(可选)
这个功能是用来同步发题消息到群里的, 并不是必须的。如果你需要这个功能,则可以看这段描述。
点开你的dingding群
然后智能助手,添加机器人
选择机器人类型
保存 access_token
填写所需参数
仓库准备
记录题目的仓库
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 中
如何做题
做题还是在本地编码为主吧,毕竟团队交流还是需要以线下为主,这样才能更好的活跃团队氛围,线上的只是做个记录,让后面的同学能进行相应的学习解题思路等。
发题系统功能介绍
发题预备
预备发布(使用了闭包保存了数据,失败的时候可以从失败的步骤开始重来)
题目详情
标签管理
关于安全问题
其实是不存在别人登陆也能操作的,因为对方没有写仓库的权限,另外想要团队一起玩的话,推荐创建组织,以获得更好的体验。
如何运营?
每天使用发题系统发布题目后,团队成员可以在线下做题,然后分享做题成果,团队成员可以上 github-issue
进行查看阅读点赞。
适当的进行定期分享讲解~
结语
看到这里,你应该已经能构建出属于你自己或者个人的题库了,给自己一点掌声鼓励一下👏。欢迎各位大佬的 pr 以及反馈帮助我改善此项目
TODO
- 增加撤回相关功能
- typeScript 迁移