Warning
🚨 特别提醒 (v1.0.2 及之前版本用户) 更新扩展时请不要移除旧版本,否则会导致做题记录丢失! 请务必查看 📥 正确的更新方法 以保留您的数据。
| 类型 | 描述 |
|---|---|
| ☁️ 新功能 | 云端同步:支持多设备间同步做题进度和设置,自动合并数据防止丢失 |
| 🔧 优化 | 移除了 Dashboard 中易误触的重置按钮,增强数据安全性 |
| 🧪 质量 | 新增大量单元测试,确保核心逻辑稳定性 |
| 类型 | 描述 |
|---|---|
| 🚀 新功能 | 支持更多 LLM 模型 (OpenAI, Gemini, Claude) |
| 🔧 优化 | 优化了模型响应解析和流式传输稳定性 |
| 类型 | 描述 |
|---|---|
| 🚀 新功能 | 新增版本自动检测与更新通知功能 |
| 📢 商店 | v1.0.1 已发布至 Edge 扩展商店 |
更多功能正在开发中...
- 👗 更丰富的宠物系统
- 📊 Dashboard知识点总结和题目智能推荐
- 🤖 更强大的AI助手
POJPaw (by ByteMate Team) 是一个专为 OpenJudge 平台设计的 AI 编程学习助手 Chrome 扩展。它通过集成大语言模型(LLM),为学生提供实时的编程指导、思路提示、代码纠错和知识推荐,同时配备了可视化的学习仪表盘和电子宠物陪伴系统。
- 📚 问题引导 (Guide):像老师一样循循善诱,分步骤引导你思考解题方向,而不是直接给出答案。
- 💡 思路提示 (Hint):当你卡壳时,提供关键的算法思路和逻辑提示。
- 🔧 代码纠错 (Fix):分析你的代码错误,提供具体的修改建议。
- 📖 知识推荐 (Recommend):根据当前题目,推荐相关的算法知识点和学习资源。
- 💬 伙伴对话 (Chat):点击小猫进行简单的互动,获取鼓励和陪伴。
- 完整题库:POJ完整题库检索

- 纯客户端架构:无需安装本地 Node.js 服务器,安装插件即用。
- 多语言支持:支持生成 C++ 或 Python 代码,满足不同学习者的需求。

- 悬浮小猫助手:可爱的像素风小猫常驻页面,点击即可唤起功能菜单。
- 侧边栏交互:流畅的侧边栏动画,支持 Markdown 渲染、代码高亮和一键复制。

- 用户反馈系统:对 AI 回答不满意?一键反馈,帮助我们持续优化。
- 数据统计:记录你的每日刷题量
- 知识图谱:可视化展示你已掌握的算法知识点。
- 电子宠物:随着你的学习进度成长,提供情感陪伴。
- 隐私安全:使用匿名 ID,不收集任何个人身份信息。
- 效能分析:自动分析“复制 AI 代码”后的提交通过率,评估辅助效果。
- 实时监控:基于 Google Analytics 4 的实时系统状态监控。
- Edge 商店:点击前往下载
- Chrome 商店:暂未通过审核
为了防止更新时数据丢失(Chrome 会根据文件夹路径生成 ID),建议采用以下方式安装和更新:
- 建立固定文件夹:在电脑上创建一个固定的文件夹(例如
D:\Extensions\POJPaw),以后不要修改这个文件夹的名字或位置。 - 下载并解压:下载最新的 Released ZIP 包。
- 放入文件:将解压后的所有文件复制到上述固定文件夹中。
- 初次安装:直接复制进去。
- 版本更新:将新版本解压后的内容全量覆盖到该固定文件夹中。
- 加载扩展:
- 打开 Chrome/Edge 扩展管理页面 (
chrome://extensions)。 - 开启右上角的“开发者模式”。
- 点击“加载已解压的扩展程序”,选择这个固定文件夹。
- 打开 Chrome/Edge 扩展管理页面 (
⚠️ 更新注意事项: 当有新版本时,请只替换固定文件夹内的文件,然后在扩展管理页面点击本扩展的 刷新/重载 按钮(⟳ 图标)。 千万不要在浏览器中点击“移除”扩展,也不要更改固定文件夹的路径,否则会导致本地存储的做题记录和设置丢失!
安装完成后,点击浏览器右上角的插件图标(POJPaw 图标)打开设置面板:
- 选择模型:支持 DeepSeek, Qwen (通义千问), OpenAI (GPT-4o), Google Gemini, Anthropic Claude 等。
- 配置 API Key:
- 输入您的 API Key。
- 或者留空,你仍然可以拷贝prompt到自己偏好的软件使用。
- 保存:点击保存按钮,即可开始使用。
注意:普通用户不需要安装 Node.js,直接加载插件即可使用。以下步骤仅适用于需要运行单元测试或参与开发的贡献者。
本项目支持完整的单元测试(基于 Jest + JSDOM),且支持跨平台开发。
- 环境要求:请确保已安装 Node.js (推荐 v18+)。
- 安装依赖:
npm install
- 运行测试:
测试覆盖了 Popup 设置逻辑、侧边栏交互以及数据统计功能。
npm test
POJPaw/
├── manifest.json // 扩展核心配置文件 (Manifest V3)
├── background/ // 后台服务 (Service Worker)
│ └── background.js // 处理 API 请求、遥测、状态管理
├── content/ // 页面注入脚本
│ ├── content-script.js // 主要 UI 逻辑、DOM 操作
│ ├── result-check.js // 提交结果检测
│ └── style.css // 注入页面的样式
├── popup/ // 插件弹窗 (设置页)
├── dashboard/ // 仪表盘页面
├── api/ // (已废弃) 旧版后端接口定义
├── assets/ // 图片资源 (UI图标、小猫动画)
├── prompts/ // Prompt 提示词模板
└── package_extension.sh // 打包脚本
- 架构变更:本项目已从“插件+本地后端”迁移至纯客户端架构。所有 LLM API 调用均在
background.js中通过fetch直接发起。 - 遥测系统:集成了 GA4 Measurement Protocol。相关配置位于
background.js顶部。 - 样式修改:主要 UI 样式位于
content/style.css,采用 Shadow DOM 思想(但在 Content Script 中直接注入 CSS)以避免样式冲突。
本项目包含完整的单元测试套件,覆盖了 Popup、Content Script、Background Service 和 Dashboard 的核心逻辑。
运行测试:
npm test查看测试文档:UNITTEXT.md
Mac / Linux 用户: 在终端运行:
./package_extension.sh或者
bash package_extension.sh脚本会在根目录生成带有版本号的压缩包(例如 POJPaw_v1_0_3.zip)。将该 ZIP 文件发送给用户,解压后按照“方式一”加载即可。
Mac/Linux 用户提示:
- 环境中没有下载
zip: 确保在unix/linux环境下运行sudo apt install zip安装。 - 运行时遇到
syntax error: unexpected end of file: 可能是在 Windows 中编辑的脚本包含不兼容的换行符(CRLF),请使用vim修改格式:
vim package_extension.sh
:set ff=unix
:wqWindows 用户: 在 PowerShell 中运行:
.\package_extension.ps1欢迎提交 Issue 和 Pull Request!
Last Updated: 2026-01-03

