Skip to content

Latest commit

 

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BioQuest — 高中生生物学习平台

English Version | 中文版

BioQuest 首页截图

从联赛备考到高考模拟,一个网站搞定你的生物练习

在线 Demo · 开始刷题 · 出题/讨论 · 反馈问题

Platform License Status PWA GitHub Stars


这是什么

BioQuest 是一个面向高中生的生物学习网站。无论是备战全国中学生生物联赛、刷高考模拟题,还是巩固课本知识,都可以在这里完成。

Important

📚 题库现状说明:目前题库内的题目大多为占位演示数据——题库系统刚完成重建(新 M 格式),已覆盖 80 个生物学科主题、共约 400 道题,用于展示刷题、错题本、能力诊断等完整功能链路。高质量真题与精编解析正在持续生产中

🙌 欢迎来出题! 如果你是生物老师、竞赛党或学科大佬,欢迎在 GitHub Discussions 里交流出题、认领主题,或直接提交 PR 补充JSON题库(建议先用disscussion,如果一段时间内没有回复,就pr吧)。每一道好题都会被认真对待。


快速开始

直接使用(学生 / 教师)

打开在线版本即可:www.ligase.beida.pw/

  • 无需注册即可刷题;注册后可同步错题本与学习进度
  • AI 导师、拍照搜题等功能需自行配置 API Key(均使用各大模型的免费额度,站内有教程)
  • 支持离线使用,可添加到手机主屏幕或PC作为 App 运行

自行部署 / 二次开发

纯静态网站,无需后端,部署简单:

# 1. 克隆仓库
git clone https://github.com/astrnox/BioQuest.git
cd BioQuest

# 2. 本地预览(任选其一)
python -m http.server 8000   # Python
npx serve .                  # Node.js

# 3. 浏览器访问 http://localhost:8000

在线部署:将整个文件夹上传至 GitHub Pages、Vercel、Netlify、Cloudflare Pages 等任意免费托管平台即可,无需构建步骤。

可选配置

  • 数据库:在 Supabase 创建免费项目,执行 sql/ 目录下的 SQL 文件,将地址与 Key 填入 js/supabase-client.js(不配置则自动使用浏览器本地存储)
  • AI 功能:用户在「我的 → 设置」中自行填写 API Key,开发者无需管理

功能一览

功能 说明
刷题模考 覆盖 80 个生物学科主题的分模块练习,自动判分并给出解析(题目持续扩充中,当前以占位演示题为主)
智能错题本 错题自动归集,支持拍照录题(印刷体与手写识别)
知识卡片 Anki 风格间隔重复卡片,基于遗忘曲线自动安排复习
能力诊断 答题后生成能力雷达图,定位薄弱知识点
AI 导师 随时提问,支持画图讲解、举一反三
虚拟实验 质壁分离、色素分离、DNA 提取等实验可在浏览器中模拟操作
分子可视化 输入 SMILES 查看 2D 结构,加载 PDB 查看 3D 分子,内置基因组浏览器
学习分析 统计每日学习时长与高频错题
社区讨论 与其他学生交流题目

核心算法

展开查看:让平台变得「聪明」的算法细节

1. 间隔重复调度(FSRS)

采用 FSRS 替代传统 Anki SM-2 算法。根据每张卡片的记忆难度,基于稳定度、难度、可提取性三个指标自动计算最优复习间隔,无需手动安排。

const scheduler = tsFsrs.fsrs({
  request_retention: 0.9,
  maximum_interval: 36500,
  enable_fuzz: true
});
const result = scheduler.next(card, now, Rating.Good);

2. 能力估计(IRT + BKT)

不采用简单的正确率计分,而是运用项目反应理论(3PL 模型)从答题历史中估计真实能力水平,同时考虑每道题的难度与区分度。此外使用贝叶斯知识追踪(BKT)估算各知识点的掌握概率。

3. 拍照搜题/加错题(OCR)

双层识别策略:若用户配置了多模态大模型 Key,优先使用 AI 识别(准确率更高,支持斜体与公式);否则使用 Tesseract.js 在浏览器本地识别,经过放大、灰度化、对比度拉伸、二值化等预处理后,再用正则修正常见识别错误。

// 图像预处理
const stretched = gray.map(v => ((v - min) / (max - min)) * 255);
const bin = stretched.map(v => v > 140 ? 255 : 0);

4. 流式渲染

AI 回答时先以纯文本逐字输出(保证响应速度),回答完成后再统一渲染为 Markdown,内联 SVG 图表自动绘制。

chunkEl.textContent += delta;                              // 流式:纯文本追加
finalEl.innerHTML = DOMPurify.sanitize(marked.parse(text)); // 完成后渲染

技术栈

纯前端架构,无需运行后端服务:

  • 前端:原生 JavaScript(单页应用)+ CSS3 + PWA(离线支持)
  • 数据:Supabase(免费版)+ IndexedDB(浏览器本地数据库)
  • AI:前端直连 6 家大模型(DeepSeek、智谱、通义、Kimi、NVIDIA、硅基流动),支持流式输出
  • 可视化:Chart.js、Cytoscape.js(知识图谱)、Mermaid(流程图)、3Dmol.js(3D 分子)、igv.js(基因组)
  • OCR:Tesseract.js(本地识别)+ 多模态大模型(云端识别)
  • 字体:霞鹜文楷(本地加载,无需网络等待)

开源依赖

项目打包了 24 个开源第三方库,均采用 MIT / Apache / BSD 等宽松协议,完整许可证声明见 js/vendor/THIRD_PARTY_LICENSES.txt

主要依赖:

  • ts-fsrs — 间隔重复算法(MIT)
  • KaTeX — 数学公式渲染(MIT)
  • Dexie.js — 浏览器本地数据库(Apache-2.0)
  • Chart.js — 图表(MIT)
  • 3Dmol.js — 3D 分子可视化(BSD-3)
  • RDKit.js — SMILES 转 2D 分子(BSD-3)
  • DOMPurify — XSS 防护(MPL-2.0 / Apache-2.0)
  • Excalidraw — 手绘画板(MIT)
  • PhET — 互动模拟实验(CC BY 4.0)
  • LXGW WenKai — 中文字体(OFL-1.1)

许可证

本项目采用双授权

  • 代码js/css/scripts/*.html 等):MPL-2.0
  • 内容data/ 题库、images/、PDF 教材、百科词条、动画等):CC BY-NC-SA 4.0

代码部分(MPL-2.0)

MPL-2.0 为弱 copyleft 协议:允许修改与商用,但修改过的文件及其派生作品须继续以 MPL-2.0 开源;协议边界为文件级,可与闭源项目一同分发。

内容部分(CC BY-NC-SA 4.0)

只要不直接销售内容本身,学习与教育用途均被允许:

  • 个人学习、二次使用
  • 学校、辅导班、培训机构用于教学(收取学费不受限制,因为销售的是教学服务而非内容)
  • 公益教育项目、教育扶贫

以下行为不被允许

  • 将题库、PDF、动画等内容直接打包售卖
  • 移除版权声明或冒充原创

内容商用授权

内容默认禁止商业用途。如需将题库、PDF、动画等用于商业场景(企业培训、付费平台、商用 SaaS、批量售卖题库等),须与版权所有者 astrnox 另行签订商业授权协议(可通过 GitHub Issues 联系)。教育及公益项目通常可免费获得授权。


路线图

题库建设是当前最高优先级:

  • 📚 大规模扩充题库:联赛真题、高考真题与模拟题、分模块精编题(当前 80 主题 × 5 题仅为占位,第一阶段目标每个主题 20-40 题)
  • 错题本导出功能优化(支持打印与 PDF 导出)
  • 多端同步优化
  • 生物画图题自动判分
  • 更多虚拟实验
  • 更多动画
  • 班级 / 教师管理功能完善
  • 移动端 App 打包(TWA / PWA 已支持,后续考虑原生壳)

欢迎提交 Issue 或在 Discussions 中提出功能建议。


反馈与联系

遇到 Bug、有功能想法或发现题目错误,欢迎反馈:

  • GitHub Issueshttps://github.com/astrnox/BioQuest/issues
    • 点击「New Issue」后选择对应模板,按模板填写最为高效:
      • Bug 报告:复现步骤 + 浏览器 / 设备信息 + 截图
      • 功能建议:想解决的问题 + 期望的解决方案
      • 题目 / 内容纠错:出错位置 + 当前错误 + 正确内容
      • 其他:求助或任意反馈
    • 也可在站内「用户反馈」弹窗中留言(分类一致)
  • 邮件astrnox@163.com

作者是一名高中生,学业较忙,回复可能不够及时,也有可能有问题,但每条建议都会认真阅读,感谢理解。


贡献指南

欢迎各种形式的贡献,尤其是出题

  • 🧬 擅长生物:来出题!补充题库、修正题目错误、撰写详细解析——可在 Discussions 认领主题或交流题目质量
  • 💻 擅长代码:修复 Bug、添加新功能
  • 🎨 擅长设计:优化界面
  • 💡 其他:使用中遇到问题或有想法,直接提 Issue 即可

代码贡献流程

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/xxx
  3. 提交改动(git commit -m '描述你的改动'
  4. 推送至分支(git push origin feature/xxx
  5. 发起 Pull Request

致谢

  • 感谢 Congqianguo 的贡献与支持
  • 感谢 Open Spaced Repetition 社区提供的 FSRS 算法
  • 感谢所有开源库的作者
  • 感谢 PhET Interactive Simulations(科罗拉多大学博尔德分校)提供的优质互动模拟
  • 感谢每一位使用 BioQuest 学生物的同学,祝考试顺利

用 BioQuest,学生物不迷路

About

Your Complete Biology Study Companion — From Gaokao to Competition Level;高中生生物学习平台-高考到竞赛全链路学习方案

Topics

Resources

Security policy

Stars

136 stars

Watchers

3 watching

Forks

Contributors

Languages