挑战 30 天开发消防答题小程序,开源分享

2024-06-07
来源:网络整理

30天消防问答APP开发挑战赛得到了众多业内外粉丝的一致好评,其中既有行业从业3-5年的大咖,也有想转行做软件开发的外行粉丝。我们也采纳了很多大咖的设计理念和建议,力求让问答APP底层功能齐全,上层功能可DIY定制,满足各行业不同需求。

《30天开发一个问答小程序》系列文章已经完成两期,前两期介绍了小程序UI框架组件的选取以及用户登录注册的逻辑处理。

先前的评论:

挑战30天开发一款消防问答APP,教你如何处理APP用户注册

挑战自己30天开发一个回答问题的小程序,从零开始成为一名开发人员。

(如果不明白的话可以在下方留言,我会一一解答)

有个好消息要告诉大家,我的问答应用已经开源了,有兴趣的可以去获取源码,版本不断更新,请用手点击星星按钮。[惊喜]

软件架构:微信原生小程序+云端开发

开源地址:点我

(不用担心,更新可能会有延迟)

今天给大家介绍一下问答小程序的重点功能【题库设计】

一个问答APP好不好,主要看它的题库设计。题型有很多种:单选题、多选题、判断题、论述题、主观题等等。当然我们做的问答APP一般都是在活动、节庆等场合使用,这两个场景要求答题结果要及时。通俗的说,我没有试卷考官来判断你的答案是否正确。[笑]

所以今天我们只介绍单选题、多选题、判断题三种题型的设计,以后可能会增加论述题。

准备:

1. 回答消防知识150道题(单选题50道,多项选择题50道,判断题50道)

2.WPS

消防知识问答示例

消防问题示例

表格示例

床单

~我花了一个小时才整理出这个表格。我太累了。

好,那我们开始想办法把这个题目导入到数据库,让云开发者可以查询,用户也可以开心的答题啦~

1. 导入数据库

1):打开云开发工具,点击“云开发”图标,打开云开发后台

云开发

2):点击红色箭头“+”号,对已有的题目数据创建题目集

创建集合

3): 选择收藏集名称,请勿输入汉字或特殊符号。

答题开发程序类小游戏_开发一个答题类小程序_个人开发答题app最简单方法

集合名词

4) 设置数据权限。这个很重要!系统默认是“只有创建者可以读写”,如果忘记改,你会发现用户无法阅读题目,无法作答。记得把权限设置为“所有用户都可以读,只有创建者可以读写”,我重复三遍!

确保将权限设置为“所有用户可读,仅创建者可读写”

确保将权限设置为“所有用户可读,仅创建者可读写”

确保将权限设置为“所有用户可读,仅创建者可读写”

数据许可

5):导入数据库,题库目前包含三种题型(单选题、多选题、判断题),云开发后端已经提供了两种数据格式导入(csv和json)

我们选择json格式导入,分析字段如下

2.整理json文件

1):将表整理成可导入的json文件

我的方法是通过PHP读取并处理,也可以通过第三方工具进行整理

PHP 代码

//导入excel生成json Vendor('PHPExcel.Classes.PHPExcel'); $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); $file = 'D:/111/question.xlsx'; $PHPExcel = $objReader->load($file);//$file_url即Excel文件的路径 //读取excel文件中的第一个工作表 $sheet = $PHPExcel->getSheet(0); //取得最大的列号 $allColumn = $sheet->getHighestColumn(); //取得最大的行号 $allRow = $sheet->getHighestRow(); $arr = []; $Str = ''; //从第二行开始插入,第一行是列名 for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { $title = $PHPExcel->getActiveSheet()->getCell("A" . $currentRow)->getValue(); $type_name = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue(); $type = ''; switch ($type_name) { case '单选题': $type = 1; break; case '多选题': $type = 2; break; case '判断题': $type = 3; break; default: $type ='错误'; break; } $option_1 = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue(); $option_2 = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue(); $option_3 = $PHPExcel->getActiveSheet()->getCell("E" . $currentRow)->getValue(); $option_4 = $PHPExcel->getActiveSheet()->getCell("F" . $currentRow)->getValue(); $option_5 = $PHPExcel->getActiveSheet()->getCell("G" . $currentRow)->getValue(); $answer = $PHPExcel->getActiveSheet()->getCell("H" . $currentRow)->getValue(); $explain = $PHPExcel->getActiveSheet()->getCell("I" . $currentRow)->getValue(); $score = $PHPExcel->getActiveSheet()->getCell("J" . $currentRow)->getValue(); //数组 $arr = [ 'title' => $title, 'type_name' => $type_name, 'type' => $type, 'A' => $option_1, 'B' => $option_2, 'C' => $option_3, 'D' => $option_4, 'E' => $option_5, 'answer' => $answer, 'explain' => $explain, 'score' => $score ]; $Str = json_encode($arr,JSON_UNESCAPED_UNICODE).PHP_EOL; echo $Str; }

打印如下:

一定要按照官方文档的格式,否则无法导入。

2):打开导入开关,选择上传文件。选择插入模式

3):导入成功了,是不是很兴奋呢?

终于结束了,其实总结起来就三步:

步骤 1:组织主题

第二步:处理并生成标准化的Json文件

步骤3:导入Json文件

下期预告:小程序生成题库、自动出题、自动评分

下一期

分享