A dynamic, interactive HTML-based tracker for coding interview preparation problems across multiple curated lists.
- Open the tracker: Double-click
tracker.htmlin any modern web browser - Track your progress: Check off problems as you solve them
- Export your data: Download updated TSV files with your progress
No installation, no server, no dependencies required. Works completely offline.
- Automatically loads all TSV files from
raw/folder - Currently tracking 4 problem lists:
- Blind 75 (75 problems)
- NeetCode 150 (150 problems)
- NeetCode 250 (250 problems)
- Salesforce (16 problems)
- Total: 491 problems with 137 duplicates identified
- When you mark a problem as solved in one list, it automatically updates in all other lists
- 137 problems appear in multiple lists and stay synchronized
- Visual badges show which other lists contain each problem
- Per-list progress bars with percentages
- Overall progress (counts unique problems only)
- Real-time updates as you work
- Search by problem name
- Filter by difficulty (Easy/Medium/Hard)
- Filter by pattern (Hash Table, Two Pointers, etc.)
- Filter by status (Solved/Unsolved)
- All changes auto-save to browser localStorage
- Your progress persists across sessions
- No account or login required
- Export individual TSV files with your progress
- Export all files at once
- Exported files include all tracking data
- Switch between lists using the tabs at the top
- Search for specific problems using the search box
- Filter problems by difficulty, pattern, or status
- Check "Solved" when you complete a problem
- Automatically records the date/time
- Syncs across all lists containing this problem
- Enter your solve time (optional)
- Add notes in the Comments field (optional)
- Problem Name - The name of the coding challenge
- Difficulty - Color-coded badge (Green=Easy, Orange=Medium, Red=Hard)
- Intermediate Time - Target time for intermediate level
- Advanced Time - Target time for advanced level
- Top Time - Target time for expert level
- Pattern - Click "Show" to reveal the problem pattern
- Solved - Checkbox to mark completion
- Time to Solve - Enter how long it took you (minutes)
- Comments - Add personal notes or insights
- Solved Date - Automatically shows when you solved it (e.g., "3 days ago")
Yellow badges like "Also in: NeetCode150, Blind75" indicate the problem appears in multiple lists. Edits sync across all instances.
GrindPulse/
├── tracker.html # Main tracker (OPEN THIS FILE)
├── raw/ # Source TSV files (problem templates)
│ ├── blind75.tsv
│ ├── neetcode150.tsv
│ ├── neetcode250.tsv
│ └── salesforce.tsv
├── data_parser.py # Parser sub-agent
├── html_generator.py # HTML structure generator
├── css_generator.py # CSS styling generator
├── js_core_generator.py # Core JavaScript logic
├── js_sync_generator.py # Cross-file sync engine
├── build_tracker.py # Integration script
├── parsed_data.json # Intermediate data file
├── BUILD_SUMMARY.md # Detailed build report
└── README.md # This file
- Create a new TSV file in the
raw/folder - Follow this format (6 columns, tab-separated):
Problem Name Difficulty Intermediate Max time Advanced Max time Top of the crop max time Problem Pattern - Run the rebuild script:
python3 build_tracker.py
- Refresh
tracker.htmlin your browser
The new list will automatically appear as a new tab.
Click the "Export [filename].tsv" button at the top of any tab to download that list with your current progress.
Click the "Export All TSVs" button in the header to download all lists at once.
Exported TSV files include 10 columns:
- Original 6 columns from source data
- Solved status (true/false)
- Time to Solve (minutes)
- Comments (your notes)
- Solved Date (ISO timestamp)
This tracker has a companion private repository for storing your personal progress data:
Repository: GrindPulse-data (private, encrypted with git-crypt)
- Privacy: Your solved status, times, and comments are personal data
- Backup: Browser localStorage can be cleared; git provides version history
- Portability: Sync progress across machines via git
- Security: git-crypt encrypts all data files on GitHub
- Use
tracker.htmlto track your progress - Export your progress using "Export All TSVs" button
- Save exported files to
GrindPulse-data/exports/ - Commit and push to backup your progress
# Clone the data repo (requires git-crypt key)
git clone https://github.com/jaodsilv/GrindPulse-data.git ../data
# Unlock encryption (one-time setup)
cd ../data
git-crypt unlock /path/to/git-crypt-key- ✓ Chrome/Edge
- ✓ Firefox
- ✓ Safari
- ✗ Internet Explorer
- Uses browser localStorage
- Separate storage key per problem list
- Typical storage: ~50-100 KB
- No server or database required
- All data stays on your computer
- No data transmission
- No tracking or analytics
- Works completely offline
If you modify the source TSV files or want to regenerate the tracker:
python3 build_tracker.pyThis will:
- Parse all TSV files in
raw/folder - Detect duplicates across files
- Generate a new
tracker.htmlwith updated data - Preserve your existing progress (stored in localStorage)
- Total Problems: 491
- Unique Problems: 354 (137 duplicates)
- Problem Lists: 4
- Difficulty Breakdown:
- Easy: ~150 problems
- Medium: ~250 problems
- Hard: ~90 problems
- Patterns Covered: 30+ different problem patterns
This is a standalone tool with no external dependencies. If you encounter issues:
- Clear browser cache and reload
- Check browser console (F12) for errors
- Try a different browser
- Rebuild the tracker using
build_tracker.py
Built using a coordinated multi-agent system:
- Data Parser Agent
- HTML Structure Generator Agent
- CSS Styling Agent
- JavaScript Core Logic Agent
- Cross-File Sync Engine Agent
Generated on: October 20, 2025