我开发了一个只存活2周的系统

开始

新学期,新气象。我们这学期要考一个新的证书叫“人工智能训练师四级”。其实在这个证书前面还有一级、二级、三级。但我真没想到我们居然直接奔着四级去考了。为了迎接这场考试,班主任也就是我们的任课老师给我们弄了一个考证系统。刚点进去用感觉挺新鲜的,但用着用着发现,好像太单调了?

407道题,324道单选,83道判断。点击考试就只能一次性刷完,想要一部分一部分的刷只能反复的开启考试,特别不方便。班主任还告诉我们,在6月1号的时候,刷题系统就会关闭了。于是我有了一个想法,我有服务器,我又有能力,为什么不做一个真正好用的刷题系统呢,于是我的构思开始了。

构思

我初步构思了它的功能,支持“乱序刷题”、“区间刷题”、“只刷单选题/判断题”。这就是前期构思的刷题方式。一开始它的名字还不叫PaperAir(轻纸),后面经过几个版本的迭代才有了现在这个名字。

终于,一个周末我开始正式做了。第一个问题是题库从哪里来,我打开了刷题系统,点击检查面板,发现题库和题库答案就赤裸裸的暴露在前端,只不过是两个独立的JSON文件,结构还有些不同。不过这并不算难题,把两个文件扔给豆包。它给我写了一个合并文件的Python脚本,运行后就把这两个文件合并为一个了。

问题

现在第一个问题解决了,其他的就自然轻松些了。2026年5月3号第一版就很快的上线了,我虽然预先测试过几次,但邀请同学测试的时候还是发生了很多问题。很快我测试出了第一个BUG,已经做过并且检查答案的题,只要切换题目就可以重新作答。这个算是很重大的BUG了,修复这个BUG用了大概2天的时间。之后陆陆续续更新了几个版本,但都有一个问题。

PaperAir的题库和答案都是切换题目的时候向后端请求的,这就导致了点击切换题库或检查答案的时候,会有1到2秒的僵直时间,这会让整个刷题的体验变得非常糟糕。事实上这个已经是当时最好的做法了,于是近几个大版本更新都维持了这个做法。在这段时间我也更新了“记忆库”和“作答历史”。那么现在是时候解决这个刷题体验不好的问题了,我想到了一种解决办法。如果我们将每次加载一道题改为预加载5道题呢,如果我们在加载题目的时候顺便连同答案一起加载在前端呢。为了让答案加载在前端不直接被用户看到具体信息,我采用了POST后端MD5加盐返回的方式,直接解决了作答体验不流畅的情况。

之后又陆续做了几个优化,上线了“模拟考场”系统。顺便还将作答答案的保存逻辑进行了优化,即使网络很卡也可以顺利提交到后端。其实做到这里,我还担心我那台低配服务器近40人同时用会不会很卡。但很显然实际进行测试的时候并没有这个顾虑,因为没有数据库,所有的题目和答案都是用文件保存的,大家刷题本质上就是在反复写入一个文件而已。所以整体来说并没有很卡,可以说的上是很流畅了。

回头看,从6月1号考试系统关闭带来的焦虑,到自己一行行代码搭出一个小站,再到看着同学们真的在用、在刷、在进步——那种感觉,比考过证书本身还要让人高兴。

全文终

致谢名单

苏舜杰、王金梅、22计算机1班杨启圣、24计算机4班李小宇、24计算机4班黄斌、24计算机4班邓志强、24计算机4班甘振键、25新媒体1班陈继成

感谢所有参加测试、使用PaperAir系统的同学,在此陵天Koimst祝大家考证顺利!

[进入PaperAir]

如果觉得本篇文章对你有帮助,可以支持下博主,感谢支持!

评论

  1. 慕瞰
    Windows Edge
    2 月前
    2026-6-02 14:55:30

    +3

  2. 博主
    Windows Edge
    4 周前
    2026-7-01 8:53:59

    非常感谢各位同学在备考期间使用了PaperAir,由于学校的原因,导致本次考证全校失败。我们已经将PaperAir的服务器关闭!( ๑´•ω•) “(ㆆᴗㆆ)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇