本地部署智能错题本
一个基于 AI 的智能错题管理系统,帮助学生高效整理、分析和复习错题。
✨ 主要功能
🤖 AI 智能分析:自动识别题目内容,生成解析、知识点标签和同类练习题。
⚙️ 灵活的 AI 配置:支持 Google Gemini 和 OpenAI (及兼容接口) 两种 AI 提供商,可直接在网页设置中动态切换和配置。
📚 多错题本管理:支持按科目(如数学、物理、英语)创建和管理多个错题本。
🏷️ 智能标签系统:自动提取知识点标签,支持自定义标签管理。
🔍 多维度筛选:支持按掌握状态、时间范围、知识点标签、年级学期、试卷等级等多种条件筛选错题。
🖨️ 灵活导出打印:一键导出筛选后的错题,支持自定义打印内容(答案/解析/知识点)和图片缩放比例,可直接打印或保存为 PDF。
📝 智能练习:基于错题生成相似的练习题,巩固薄弱环节。
📊 数据统计:可视化展示错题掌握情况和学习进度。
🔐 用户管理:支持多用户注册、登录,数据安全隔离。
🛡️ 管理员后台:提供用户管理功能,可禁用/启用用户、删除违规用户。
📸 屏幕截图功能 (HTTPS 设置)
本应用的屏幕截图功能依赖浏览器的安全上下文 (HTTPS)。在 Docker 或局域网环境中使用时,请参考 HTTPS 配置指南 启用内置 HTTPS 支持。
📱 PWA 支持 (添加到主屏幕)
本项目支持 PWA (Progressive Web App),您可以将应用添加到手机主屏幕,获得原生应用般的使用体验。
功能特性:
🚀 快速启动:点击主屏幕图标直接打开,无需输入网址。
📱 沉浸体验:全屏运行,无浏览器地址栏干扰。
🎨 原色适配:应用图标和启动画面适配系统主题。
使用方法:
iPhone / iPad (Safari): 点击底部 分享 按钮 -> 选择 "添加到主屏幕"。
Android (Chrome): 点击右上角 菜单 -> 选择 "添加到主屏幕" 或 "安装应用"。
🛠️ 技术栈
框架: Next.js 16 (App Router)
UI 库: React 19
样式: Tailwind CSS v4 + Shadcn UI
AI: Google Gemini API / OpenAI API / Azure OpenAI
认证: NextAuth.js
🚀 快速开始
方式一:使用 Docker 部署
1. 启动服务
您可以选择 直接使用命令 (适合快速测试) 或 Docker Compose (适合长期运行)。
选项 A:直接使用 Docker 命令
docker run -d --name wrong-notebook \
-e NEXTAUTH_SECRET="your_secret_key" \
-p 3000:3000 \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
ghcr.io/wttwins/wrong-notebook选项 B:使用 Docker Compose (推荐)
使用 docker-compose.yml 文件进行管理。
下载配置文件:
curl -o docker-compose.yml https://raw.githubusercontent.com/wttwins/wrong-notebook/refs/heads/main/docker-compose.yml启动服务:
docker-compose up -d查看日志:
docker-compose logs -f停止服务:
docker-compose down
方式二:本地源码运行
1. 克隆仓库
git clone https://github.com/wttwins/wrong-notebook.git
cd wrong-notebook2. 环境准备
确保已安装 Node.js (v18+) 和 npm。
3. 安装依赖
npm install4. 配置环境变量
复制 .env.example 为 .env 并填入必要的配置:
cp .env.example .env基础配置
AI 配置
5. 初始化数据库
npx prisma migrate dev
npx prisma db seed6. 管理员账户
默认管理员账户:
邮箱:
admin@localhost密码:
123456
管理员登录后,可在“设置” -> “用户管理”中管理系统用户。
7. 启动开发服务器
npm run dev访问 http://your-domain-name:3000 开始使用。
⚙️ AI 模型配置
本项目支持动态配置 AI 模型,无需重启服务器。
进入设置:点击首页右上角的设置图标。
选择提供商:支持 Google Gemini, OpenAI (或兼容 API) 和 Azure OpenAI。
填写参数:
通用参数: API Key, Base URL (或 Endpoint), Model Name (或 Deployment Name)。
Azure 特有: Deployment Name (部署名称), API Version (API 版本)。
保存生效:点击保存后即刻生效。
注意:网页配置会保存到
config/app-config.json文件中,该文件的优先级高于.env环境变量。