projects / codepop
CodePop
Chrome extension (Manifest V3) that records every LeetCode attempt — Accepted, Wrong Answer, TLE and errors — and commits each one to your GitHub repo.
- Problem
- Most LeetCode → GitHub tools only keep Accepted solutions. The failed attempts, where most of the learning happens, disappear.
- Engineering approach
- Plain ES modules, no bundler. Content scripts capture problem metadata and Monaco editor code on Submit, a MutationObserver reads the verdict, and a service worker drains a persistent queue into atomic Git commits via GitHub’s Git Data API. Auth supports a fine-grained PAT or GitHub OAuth; failed uploads retry automatically.
- Technologies
- Chrome Manifest V3
- Vanilla JavaScript (ES modules)
- chrome.storage / service workers
- GitHub REST + Git Data API
- OAuth / fine-grained PAT
- Verified results
- End-to-end loop: capture → queue → one commit per attempt → popup status. Closer to LeetHub/LeetSync in spirit, but oriented around every attempt, not only Accepted solutions.
- Status
- v0.1.1 — core loop complete; LeetCode DOM selectors remain the fragile spot.