https://github.com/art2url/solve-sync
🧩 SolveSync is a Chrome extension that automates uploading your accepted LeetCode solutions to a GitHub repository using secure OAuth authentication.
https://github.com/art2url/solve-sync
automatically-push automation chrome-extension chrome-extension-api chromeextension coding-solutions github javascript leetcode leetcode-solutions leetcode-sync oauth problem-solving web-development
Last synced: 3 months ago
JSON representation
🧩 SolveSync is a Chrome extension that automates uploading your accepted LeetCode solutions to a GitHub repository using secure OAuth authentication.
- Host: GitHub
- URL: https://github.com/art2url/solve-sync
- Owner: art2url
- License: mit
- Created: 2025-01-28T13:48:08.000Z (5 months ago)
- Default Branch: develop
- Last Pushed: 2025-02-18T15:12:54.000Z (5 months ago)
- Last Synced: 2025-02-18T16:24:33.803Z (5 months ago)
- Topics: automatically-push, automation, chrome-extension, chrome-extension-api, chromeextension, coding-solutions, github, javascript, leetcode, leetcode-solutions, leetcode-sync, oauth, problem-solving, web-development
- Language: JavaScript
- Homepage:
- Size: 876 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SolveSync Chrome Extension
SolveSync is a Chrome extension that automates uploading your accepted LeetCode solutions directly to your GitHub repository. It uses secure OAuth authorization to handle your credentials and commits your solutions in a structured format.
## Features
- **Automatic Uploads:** Seamlessly upload accepted LeetCode solutions to your GitHub.
- **Organized Repository:** Solutions are categorized by difficulty (Easy, Medium, Hard) and stored in folders named after the problem title.
- **Secure Authorization:** OAuth 2.0 ensures your GitHub credentials are handled securely.## Technologies Used
- **Frontend:** JavaScript, Chrome Extensions API
- **Backend:** Node.js, Express, Axios, CORS
- **Authentication:** GitHub OAuth 2.0## Installation
1. **Clone the Repository:**
```bash
git clone https://github.com/art2url/solve-sync.git
```2. **Load Extension in Chrome:**
- Go to `chrome://extensions/`.
- Enable **Developer Mode** (top right corner).
- Click **Load unpacked** and select the cloned `solve-sync` directory.3. **Set Up GitHub OAuth App:**
- Go to [GitHub Developer Settings](https://github.com/settings/developers).
- Click on **New OAuth App**.
- **Application Name:** SolveSync
- **Homepage URL:** `https://github.com/your-username`
- **Authorization Callback URL:** `https://.chromiumapp.org`
- After creation, copy the **Client ID** and **Client Secret**.4. **Configure the Backend Server:**
- Clone the backend repository:
```bash
git clone https://github.com/art2url/solve-sync-oauth-server.git
cd solve-sync-oauth-server
```
- Create a `.env` file in the root directory with the following content:
```env
GITHUB_CLIENT_ID=your-client-id
GITHUB_CLIENT_SECRET=your-client-secret
```
- Deploy the backend to a free server like [Render](https://render.com/):
- Create a new **Web Service** on Render.
- Connect your GitHub repository and deploy.
- Ensure the backend URL is updated in the extension's `manifest.json` under `host_permissions`.5. **Configure Extension Settings:**
- Open the SolveSync extension popup.
- **Login with GitHub** using the OAuth flow.
- Enter your **Repository** and **Branch** where solutions will be uploaded.## Usage
1. Go to any LeetCode problem.
2. Solve and submit the problem.
3. Once your solution is **Accepted**, it will be automatically uploaded to your GitHub repository in the specified structure.## Repository Structure
```
├── easy
│ └── 2703-return-length-of-arguments-passed
│ ├── 2703-return-length-of-arguments-passed.js
│ └── readme.md
├── medium
│ └── example-medium-problem
│ ├── example-medium-problem.py
│ └── readme.md
└── hard
└── example-hard-problem
├── example-hard-problem.java
└── readme.md
```## License
This project is licensed under the [MIT License](LICENSE).
---
Enjoy solving problems and keeping your GitHub repository updated effortlessly! 🚀