A Chrome extension that tracks your progress on satquestionbank.org. For every question you answer it records:
- the question id (from the URL, e.g.
3b6b5f30), - the category / skill (e.g. Algebra – Linear equations in one variable),
- the difficulty (Easy / Medium / Hard),
- whether you got it right on your first try,
- and a link back to the question so you can review it later.
A side panel then shows where you're strong and weak — first-try accuracy by skill
(weakest first). Each skill row is an aggregate you can tap to expand into its
Easy / Medium / Hard sub-stats (e.g. Linear equations in one variable breaks into easy,
medium, and hard), plus an overall by-difficulty rollup. Each difficulty lists clickable
review links to the individual questions — color-coded (green = first-try correct, red =
first-try wrong) and ordered wrong-first — so you can jump straight back to anything you missed.
All data is stored locally in the extension (chrome.storage.local); nothing is sent anywhere.
- Open
chrome://extensions. - Turn on Developer mode (top-right).
- Click Load unpacked and select this
sqbtracker/folder. - Pin the extension and click its toolbar icon to open the side panel.
- Open any question, e.g.
https://satquestionbank.org/question/<id>?set=<set>. - Pick an answer and click Submit. The extension detects the result automatically.
- Click the toolbar icon to open the side panel and watch your stats update live.
- Clicking Next between questions works without reloading — the tracker follows the site's in-page navigation.
Only the first attempt at each question id counts toward your first-try accuracy. Re-answering a question later won't change that question's first-try result (but is still counted in its attempt total).
- Export — download all tracked data as JSON (backup / move to another machine).
- Import — merge a previously exported JSON file (existing first-try results are kept).
- Reset — delete all tracked progress.
The site is a client-side app that grades answers in the browser: when you submit, the
chosen answer turns green (correct) or red (incorrect). The content script
(src/content.js) reads that reveal from the page, scrapes the category
(<h2>) and difficulty (title="Question Difficulty: …"), and saves the result via the
shared storage layer (src/storage.js). The side panel
(src/sidepanel.js) aggregates and displays it.
| File | Purpose |
|---|---|
manifest.json |
MV3 manifest (content script, side panel, service worker) |
src/storage.js |
Storage schema + aggregation helpers (shared) |
src/content.js |
Scrapes questions and detects first-try correctness |
src/background.js |
Opens the side panel when the toolbar icon is clicked |
sidepanel.html / src/sidepanel.js / src/sidepanel.css |
Progress UI |
icons/ |
Toolbar / extension icons |
- Detection relies on the site's green/red result styling and a few selectors. If the site
is significantly redesigned, the selectors in
src/content.js(readResult,findCategory,findDifficulty) are the only things that should need updating. - Data lives in
chrome.storage.local(notsync) so a large history won't hit sync quotas; use Export/Import to move data between machines.