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.
- 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.
- Frontend: JavaScript, Chrome Extensions API
- Backend: Node.js, Express, Axios, CORS
- Authentication: GitHub OAuth 2.0
-
Clone the Repository:
git clone https://github.com/art2url/solve-sync.git
-
Load Extension in Chrome:
- Go to
chrome://extensions/
. - Enable Developer Mode (top right corner).
- Click Load unpacked and select the cloned
solve-sync
directory.
- Go to
-
Set Up GitHub OAuth App:
- Go to GitHub Developer Settings.
- Click on New OAuth App.
- Application Name: SolveSync
- Homepage URL:
https://github.com/your-username
- Authorization Callback URL:
https://<your-extension-id>.chromiumapp.org
- After creation, copy the Client ID and Client Secret.
-
Configure the Backend Server:
- Clone the backend repository:
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:GITHUB_CLIENT_ID=your-client-id GITHUB_CLIENT_SECRET=your-client-secret
- Deploy the backend to a free server like Render:
- 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
underhost_permissions
.
- Clone the backend repository:
-
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.
- Go to any LeetCode problem.
- Solve and submit the problem.
- Once your solution is Accepted, it will be automatically uploaded to your GitHub repository in the specified 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
This project is licensed under the MIT License.
Enjoy solving problems and keeping your GitHub repository updated effortlessly! π