简介
传统的线上作业提交平台,只能简单的保存学生的答案,并不能对答案的正确性进行核对,尤其是针对像编程这种代码不唯一但运行结果唯一的科目。因此“云编程小精灵”是一个面向校园与课堂的云编程工具,主要适用于《C语言程序设计》和《数据结构》等科目的教学。支持教师在云编程小精灵中添加编程题目,学生可作答并即时得到运行结果与答案正误,并可自由进行编程练习。
代码仓库
GitHub:https://github.com/0Kirby/ProgrammingElf
Gitee:https://gitee.com/zerokirby/tcb-hackthon-ProgrammingElf
设计思路
“云编程小精灵”基于小程序和云开发搭建。
小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
而云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
“云编程小精灵”使用小程序中的页面作为前端,负责展示用户数据以及进行必要的交互;使用云开发作为后端,其中云函数负责发送HTTP请求、获取用户ID等,而云数据库负责保存本小程序应用到的各种数据。
技术架构
前端
基于小程序中的pages,目前使用了8个页面。
- about:介绍本人的信息
- detail:基于exercise页面,增加了保存答案与核对答案的功能,如果是进入已完成的题目还能显示之前提交的代码和运行结果
- exercise:给学生提供自由练习编程的功能
- home:小程序主界面,显示尚未完成的编程作业,如果用户尚未设置个人信息会给予提示
- list:显示已完成的编程作业
- login:提示用户需要授权才能使用
- me:展示用户微信个人信息,并提供其他功能的入口
- user:修改用户个人信息
后端
基于云开发,目前使用了2个云函数与云数据库。
云函数
- glot:调用glot API对学生的代码进行运行,并将结果返回给小程序
- login:获取用户的openid
云数据库
- users:保存用户基本信息
- answers:保存学生的完成情况
- questions:保存教师布置的编程题
注意点
因为极限编程的开发时间所限,因此本小程序目前只完成了学生端,教师端功能后期有待完善,只能使用内置的题库,所以需要使用提供的个人信息进行题库的读取与写入。
操作方法
点击下方Tab栏中的”我“,然后点击上方的用户头像进行个人信息的设置,否则会出现找不到编程题的情况。其中最后四列必须如下设置,可参考结果展示用的”编辑个人信息“:
- 学校:腾讯云学院
- 学院:犀牛鸟学院
- 班级:校园技术布道师养成1班 或者填写 :校园技术布道师养成2班
- 课程:极限编程