Hello,大家好,接下来向大家分享一下我们的互评小程序开发经验。视频演示链接
1. idea
互评小程序 idea 来源于我们所在的课题组每周进行一次的组会,课题组学生数20人左右,每位学生需要轮流着在组会上做报告分享,学期结束以后大家进行投票,评选出优秀的组会报告。在实践中我们发现以下几个问题:
(1)缺乏文件共享的平台,学生做完报告以后文件并没有分享给其他老师或同学,不利于促进相互学习。
(2)缺乏有效的评价机制,仅仅通过投票的方式偏离了评选的初衷。
基于以上需求痛点,我们开发了一款用于课题组组会报告评价的小程序。学生在进行报告分享前将自己的报告文件上传到系统中,报告结束以后其他老师和同学可以利用小程序进行评价和讨论。一学期下来,我们得到了每位同学分享的报告以及老师和同学们的评价。通过这个小程序,课题组组会报告成果沉淀了下来,同时还通过互评激励,提高了同学们报告的质量以及参与评价的积极性,小程序取得了实质性的效果。
考虑到组会报告评价这一特定场景的用户量比较少,我们决定将使用场景进一步扩展,于是面向高校的课程作业互评工具——互评吧——就这样诞生了。互评吧主要解决了当前高校课程作业互评中的三大需求痛点:
(1)统一的作业互评流程。
(2)能够自动分派作业互评任务。
(3)能够自动进行互评流程数据统计、处理与分析。
简单来说,互评吧是一款用于高校课程作业互评的便捷、高效的同伴互评工具。通过互评吧小程序,教师可以轻松发起作业互评,实时查看作业提交情况与同伴互评情况,进行互评作业全周期监控与管理;学生可以加入作业,进行作业提交和同伴互评并查看互评结果。
2. 设计
确定了小程序的定位以及需求以后,我们开始着手系统设计,主要完成系统总体功能框架设计、数据库设计、接口设计以及原型设计等。这一部分主要分享我们在团队协作过程中使用到的工具。
2.1 思维导图协作工具:ProcessOn
2.2 原型协作工具: 墨刀
2.3 文档协作工具:腾讯文档
我们使用腾讯文档进行需求文档、数据库设计文档、接口文档、todolist 等的协作,使用起来非常方便。
另外,图标设计使用了 阿里巴巴矢量图标库 以及 Photoshop 等工具;代码托管使用 GitHub;数据库设计使用 Mysql Workbench ……
3. 开发
3.1 小程序端
小程序端开发工具使用微信 web 开发者工具,最头疼的就是有时候会出现复制粘贴功能失效的情况,针对这个问题,一种办法是关闭项目并重启 IDE,另一种就是改用 WebStorm、VS Code 等开发工具。
互评吧小程序使用到的小程序能力最关键的就是文件功能。由于互评吧的使用场景是高校课程作业互评,学生提交的作业往往是 word、PPT、PDF 等格式的文件。小程序需要支持的功能有文件上传、文件下载、文件浏览等。2019年1月,微信小程序新增选择本地聊天文件的 API wx.chooseMessageFile,可以支持从聊天记录中选择文件,结合之前发布的文件上传接口 wx.uploadFile 并配合后台服务器提供的文件上传接口、文件下载接口 wx.downloadFile、文件浏览接口 wx.openDocument,最终可以实现从微信聊天记录中选择并上传文件,通过小程序下载与浏览文件。于是互评吧的文件功能得以完全实现,学生通过互评小程序就能上传作业文件,实时浏览互评作业的文件。
小程序主要界面
3.2 服务器端
互评吧小程序后端采用 Node.js + Koa + Axios + MySql 的技术栈,开发工具采用 WebStorm,依赖的库主要有 axios 、fs、https、koa、koa-body、koa-router、koa-static、mysql 等。
- api/ 路由的定义
- controller/ 前端请求进来之后具体的实现
- logger/ 日志系统
- middleware/ 自定义的中间件
- request/ 服务端请求放置的目录(获取openid)
- Nginx/ https服务器秘钥
- static/ 服务器静态文件管理
- util/ 自定义函数
- database.js 数据库配置
- env.js 配置信息
- index.js服务启动的入口
—————————————————————————————————————
以上就是关于互评小程序开发经验的分享。
欢迎大家一起交流学习~
界面设计挺舒服的
all right man!