7086cmd / prob-bank

简陋的题库系统

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem Bank

Problem Bank

Problem Bank 是一个“划时代”的题库系统。他支持我们快速添加题目并且予以修改、拓展,支持连接不同的数据库,做到轻量化和高效化。

项目由来

在中考冲刺阶段,我尝试了一些题库平台作为来源,但发现它们的排版都有一些共同的问题:

  1. 跨学科支持不好,譬如“社会”一门学科在初中,分为“历史与社会”以及“道德与法治”,但是它们总是无法在一些平台上面和卷,而且分类的天壤之别导致了组卷也不甚方便。同时,高中的“技术”包含信息技术和通用技术。在一些平台上,信息技术的代码竟然是图片!这导致了后期修改的麻烦和程序的难以阅读。

  2. 公式的排版等固有问题。一些题库系统直接使用Latin Modern Math字体,其他的全部使用HTML来实现,显得既不美观,也不优雅。Problem Bank 则将LaTeX带入,使用KaTeX并且配备mhchem宏包,使得公式的排版更加美观。同时,我们也给出了关键字索引,用于不是特别熟悉LaTeX的用户。同时,我们将文字(支持 Markdown)和公式分开,这有利于导出为Word时,适应Office ML或者MathType的公式编辑器。

  3. 界面问题。一些题库系统的界面过于简陋,而且不支持移动端。Problem Bank 则使用了Vue框架,使用Element Plus组件库,使得界面更加美观,同时也计划支持移动端。

  4. 导出排版问题。一些题库系统的导出排版不够美观,且字体单一。Problem Bank 则深耕试卷排版,定义字体使用标准,使得导出的试卷更加美观。

项目架构

Problem Bank 采用前后端分离的架构,前端使用Vue.js框架,后端使用Node.js框架。前端使用Element Plus组件库,后端使用Koa框架。我们不喜欢传统的数据库,因此我们使用了MongoDB作为数据库。这样使得操作更加方便,题目管理也可以直接在数据库中进行,以备不时之需。

项目进度

目前,第一版本的 Problem Bank 已经大体完成。美中不足的是,这一个版本还不支持打开导出的.pbpaper试卷,这是一个遗憾。但是,我们会在第二版本中支持这一功能。

同时,第一版本的 Problem Bank 还不支持移动端,基于 Electron 的架构有时还会出现一点小问题(这不是Electron的锅!)。

我们目前亟需解决的问题是:Markdown的渲染在客户端上有一点问题。

About

简陋的题库系统

License:MIT License


Languages

Language:Vue 66.3%Language:TypeScript 30.3%Language:CSS 1.7%Language:JavaScript 1.6%Language:HTML 0.1%