Skip to content

nessakodo/leetcode-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode Top Interview 150 Tracker

A tool to scrape LeetCode's Top Interview 150 problems and create a trackable Notion database for your study progress.

Setup

1. Notion Integration Setup

  1. Go to Notion Integrations
  2. Create a new internal integration
  3. Copy the "Internal Integration Secret"
  4. In Notion, create a parent page where you want the database
  5. Share that page with your integration (••• → Add connections)
  6. Copy the page ID from the URL (the long hex string)

2. Environment Configuration

  1. Copy .env.example to .env:
cp .env.example .env
  1. Fill in your values in .env:
NOTION_TOKEN=secret_your_integration_token_here
NOTION_PARENT_PAGE_ID=your_parent_page_id_here

3. Install Dependencies

npm install

Usage

Step 1: Scrape LeetCode Problems

  1. Go to LeetCode Top Interview 150
  2. Open DevTools Console (F12)
  3. Copy and paste the contents of scraper.js into the console
  4. Press Enter and wait for the download

This will download leetcode_top150.json with all the problems.

Step 2: Import to Notion

node import.js

This will:

  • Create a new Notion database (or update existing one)
  • Import all problems with proper categorization
  • Set up tracking fields for your study progress

Database Schema

The created Notion database includes these properties:

  • Name - Problem title
  • URL - LeetCode problem link
  • LeetCode ID - Problem number
  • Slug - URL slug for deduplication
  • Difficulty - Easy/Medium/Hard
  • Topic - Problem category (Array, String, etc.)
  • Status - Not Started/In Progress/Completed/Reviewed
  • Claimed by - Who's working on it
  • Completed by - Who finished it
  • Date Started - When work began
  • Date Completed - When finished
  • Time Spent - Minutes invested
  • Attempts - Number of tries
  • Notes - Personal notes
  • Solution Link - Your solution repository
  • Tags - Custom tags
  • Priority - High/Medium/Low

Usage Tips

For Study Groups

  • Use "Claimed by" to assign problems
  • Use "Completed by" to track who finished
  • Filter by person to see individual progress

Views to Create

  • My Problems - Filter by your name in "Claimed by"
  • By Topic - Group by Topic property
  • By Difficulty - Filter Easy/Medium/Hard
  • Progress Board - Kanban view grouped by Status

Workflow

  1. Claim a problem by adding your name to "Claimed by"
  2. Set Status to "In Progress" and Date Started
  3. When done, set Status to "Completed", add Date Completed
  4. Add your name to "Completed by"
  5. Optionally add time spent and notes

Re-running

The import script is idempotent - you can run it multiple times without creating duplicates. It matches problems by slug and URL.

Files

  • scraper.js - Browser console script to extract problems
  • import.js - Node script to create/update Notion database
  • .env - Your Notion credentials (not in git)
  • .env.example - Template for environment variables

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published