Skip to content

Latest commit

ย 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ PushHub

PushHub Logo

Push your DSA journey to GitHub.

An all-in-one Chrome extension that automatically syncs your accepted competitive programming solutions to GitHub and keeps your DSA repository meticulously organized.

Chrome Extension Manifest V3 JavaScript Node.js Express GitHub OAuth


๐Ÿ“Œ Overview

PushHub is a Chrome extension built to eliminate friction for developers preparing for coding interviews and competitive programming.

It connects major coding platforms directly with GitHub and automates the repetitive, manual chores of maintaining a Data Structures and Algorithms repository.

Instead of manually:

  • Copying accepted code across tabs
  • Creating topic directories
  • Naming files and matching extensions
  • Pasting problem links and problem statements
  • Organizing problems by category
  • Writing solution documentation
  • Tracking streaks across fragmented platforms

PushHub handles it all behind the scenes.

The Workflow:

Solve Problem  โ”€โ”€โ–บ  Get Accepted  โ”€โ”€โ–บ  Sync with One Click  โ”€โ”€โ–บ  Structured GitHub Repo

๐ŸŽฏ Why PushHub? Competitive programmers often solve problems across LeetCode, GeeksforGeeks, CodeChef, Codeforces, and HackerRank. However, keeping a clean, showcase-ready GitHub repository usually turns into a chore that interrupts your problem-solving flow.

PushHub bridges that gap.

The Manual Grind vs. PushHub

Without PushHub                         With PushHub
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€                         โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Solve Problem                           Solve Problem
      โ†“                                       โ†“
Submit                                  Submit
      โ†“                                       โ†“
Copy Code                               Accepted โœ…
      โ†“                                       โ†“
Open GitHub                             Sync to GitHub ๐Ÿš€
      โ†“                                       โ†“
Find Repository                         Done (Clean & Organized!)
      โ†“
Create Folder
      โ†“
Create File
      โ†“
Rename File
      โ†“
Add Problem Link
      โ†“
Repeat hundreds of times...

The goal is simple: Spend more time mastering algorithms, and zero time managing files.

๐ŸŒ Supported Platforms

Platform Accepted Detection Automated GitHub Sync
๐ŸŸ  LeetCode โœ… โœ…
๐ŸŸข GeeksforGeeks โœ… โœ…
๐ŸŸฉ HackerRank โœ… โœ…
๐ŸŸค CodeChef โœ… โœ…
๐ŸŒˆ Codeforces โœ… โœ…

โšก Core Features

๐Ÿ”„ One-Click GitHub Synchronization After submitting and receiving an accepted verdict, PushHub triggers a seamless sync action to push the clean solution directly into your designated repository.

Accepted Submission โ”€โ”€โ–บ "Sync to GitHub" โ”€โ”€โ–บ GitHub Repository

๐Ÿค– Automatic Solution Extraction PushHub intercepts and extracts metadata accurately from the page DOM and network events:

Problem title and problem ID Target programming language Final submitted source code Source platform tag Direct problem URL Topic tags and categories

๐Ÿ—‚๏ธ Automatic Topic-Based Organization

Instead of dumping every single file into the root folder, PushHub arranges problems into dedicated DSA topic categories.

๐Ÿง  Topic Classification Categories

Whenever platform tags are available, PushHub maps the problem into one of the following curated DSA categories: Data Structures: Array, String, Linked List, Stack, Queue, Tree, Binary Tree, Binary Search Tree, Heap, Matrix Algorithms & Techniques: Dynamic Programming, Greedy, Recursion, Backtracking, Hashing, Sorting, Searching, Bit Manipulation, Mathematics, Sliding Window, Two Pointer, Prefix Sum Fallback: Other/ (ensures zero misplaced solutions when category tags are ambiguous)

๐Ÿ“„ Standardized Problem Layout Every synced problem receives its own dedicated directory with clean file naming and auto-generated documentation:

Topic/
โ””โ”€โ”€ ProblemIdentifier-ProblemName/
    โ”œโ”€โ”€ ProblemIdentifier-ProblemName.ext-(platform)
    โ””โ”€โ”€ README.md

๐Ÿ“Š DSA Progress Dashboard & Streak Tracking PushHub includes an integrated overview dashboard built right into the extension popup.

Metrics Tracked: Total Problems Solved Platform Breakdown: LeetCode, GeeksforGeeks, HackerRank, CodeChef, Codeforces Current Solving Streak: Consecutive days actively solving problems Best Solving Streak: Longest recorded active solving streak

๐Ÿ“Š PushHub Dashboard

PushHub Dashboard - Top
PushHub Dashboard - Bottom

Don't just solve more. Solve consistently.

๐Ÿ”— GitHub Integration & Security PushHub connects directly via GitHub OAuth, following secure authorization best practices.

Authorization Workflow:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚    PushHub    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ GitHub OAuth  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ User Confirms โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Select / Link โ”‚
โ”‚ DSA Repositoryโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Sync Solution โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Architecture Separation: PushHub keeps the extension engine distinct from your personal DSA portfolio:

PushHub Project Repository: Contains the Chrome extension code, Node.js backend, bridge scripts, and extension assets.

Your Personal DSA Repository: The destination repository where your solutions, markdown notes, and topic directories live.

๐Ÿงฉ How PushHub Works
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               Coding & Contest Platforms                โ”‚
โ”‚    LeetCode  โ”‚  GeeksforGeeks  โ”‚  HackerRank  โ”‚  CC  โ”‚  CF โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚ Accepted Detection  โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚ Solution Extraction โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚ Problem Metadata &  โ”‚
                  โ”‚   Classification    โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚   PushHub Backend   โ”‚
                  โ”‚    & GitHub API     โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚   Organized GitHub  โ”‚
                  โ”‚    DSA Repository   โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ—๏ธ Project Architecture

PushHub/
โ”‚
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ codechef.png
โ”‚   โ”œโ”€โ”€ codeforces.png
โ”‚   โ”œโ”€โ”€ gfg.png
โ”‚   โ”œโ”€โ”€ github.png
โ”‚   โ”œโ”€โ”€ hackerrank.png
โ”‚   โ”œโ”€โ”€ leetcode.png
โ”‚   โ””โ”€โ”€ pushhub-logo.png
โ”‚
โ”œโ”€โ”€ github/
โ”‚   โ””โ”€โ”€ auth.js
โ”‚
โ”œโ”€โ”€ platforms/
โ”‚   โ”œโ”€โ”€ leetcode.js
โ”‚   โ”œโ”€โ”€ gfg.js
โ”‚   โ”œโ”€โ”€ gfg-bridge.js
โ”‚   โ”œโ”€โ”€ hackerrank.js
โ”‚   โ”œโ”€โ”€ hackerrank-bridge.js
โ”‚   โ”œโ”€โ”€ codechef.js
โ”‚   โ”œโ”€โ”€ codechef-bridge.js
โ”‚   โ”œโ”€โ”€ codeforces.js
โ”‚   โ””โ”€โ”€ codeforces-bridge.js
โ”‚
โ”œโ”€โ”€ popup/
โ”‚   โ”œโ”€โ”€ popup.html
โ”‚   โ”œโ”€โ”€ popup.css
โ”‚   โ””โ”€โ”€ popup.js
โ”‚
โ”œโ”€โ”€ screenshots/
โ”‚   โ”œโ”€โ”€ dashboard-top.png
โ”‚   โ”œโ”€โ”€ dashboard-bottom.png
โ”‚   โ”œโ”€โ”€ sync-button.png
โ”‚   โ”œโ”€โ”€ sync-success.png
โ”‚   โ””โ”€โ”€ github-organization.png
โ”‚
โ”œโ”€โ”€ server/
โ”‚   โ”œโ”€โ”€ server.js
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ package-lock.json
โ”‚   โ””โ”€โ”€ .env
โ”‚
โ”œโ”€โ”€ background.js
โ”œโ”€โ”€ manifest.json
โ””โ”€โ”€ README.md

๐Ÿ› ๏ธ Technology Stack

Extension Framework: Chrome Extension API (Manifest V3)

Frontend / Popup: JavaScript (ES6+), HTML5, CSS3

Backend: Node.js, Express.js

Authentication: GitHub OAuth 2.0

APIs & Storage: GitHub REST API, Chrome Storage API

Scraping & Injection: Content Scripts, DOM Mutation Observers, Platform Bridge Injectors

๐Ÿš€ Installation & Setup

Prerequisites Node.js (v16 or higher)

Google Chrome or any Chromium-based browser

A registered GitHub OAuth Application

  1. Clone the Repository

git clone https://github.com/Khushii75/PushHub.git cd PushHub

  1. Set Up the OAuth Backend

cd server npm install

Create a .env file inside the server/ directory: PORT=5000 GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret

Start the server: npm start

  1. Load the Extension into Chrome

  2. Open Chrome and navigate to chrome://extensions/.

  3. Toggle on Developer mode in the top right corner.

  4. Click Load unpacked in the top left corner.

  5. Select the root PushHub folder.

  6. Pin PushHub to your browser toolbar.

  7. Click the extension icon, connect your GitHub account, and select your destination DSA repository.

๐Ÿ“ธ Screenshots & Showcase

WhatsApp Image 2026-09-08 at 2 38 23 PM

๐Ÿ”’ Privacy & Security

No Passwords Stored: PushHub utilizes official GitHub OAuth workflows; your raw GitHub password is never requested or stored. Environment Isolation: The OAuth client secret remains securely on the backend server and is never committed to version control. Minimal Scopes: Requests only the permissions necessary to manage files in your authorized repository.

๐Ÿ”ฎ Future Roadmap

[ ] Chrome Web Store official publication [ ] Support for Codeforces Gym and AtCoder [ ] Custom user directory mapping (configure folder names per topic) [ ] Multi-language solution versioning (grouping Python, C++, and Java under one problem folder) [ ] In-depth analytics: problem difficulty distributions (Easy, Medium, Hard) [ ] Automated daily streak reminders and browser notifications

๐Ÿค Contributing

Contributions are always welcome! If you have suggestions or improvements:

Fork the Project Create your Feature Branch (git checkout -b feature/AmazingFeature) Commit your Changes (git commit -m 'Add some AmazingFeature') Push to the Branch (git push origin feature/AmazingFeature) Open a Pull Request

๐Ÿ‘ฉโ€๐Ÿ’ป Author

Khushi Kunwar kunwarkhushi75@gmail.com

Building tools to make DSA practice, algorithmic mastery, and GitHub tracking effortless.

About

An all-in-one Chrome extension that syncs accepted DSA solutions from LeetCode, GeeksforGeeks, HackerRank, CodeChef, and Codeforces directly to GitHub.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages