CodeHub
CodeHub is an open-source browser extension that automatically pushes your Codewars submissions to GitHub. Used over 25k times by 350+ developers ⚡
Install / Use
/learn @febinbellamy/CodeHubREADME
How To Use / Demo
1. Install the Extension
Download CodeHub from the Chrome Web Store or Mozilla Add-ons.
2. Authenticate with GitHub
Click the CodeHub extension icon, then click the "Authenticate" button to connect your GitHub account.
3. Link a Repository
Connect CodeHub to an existing repository or create a new one. You can also add an optional directory path within the repository (for example: "coding_challenges/codewars"). Click the "Get Started" button when you're ready.
4. Choose How Your Solutions Are Organized
Click the settings ⚙️ icon to choose how CodeHub organizes your solutions in your GitHub repository (demo).
5. Start Coding
You're all set! Solve problems on Codewars, and your solutions will automatically sync to the linked GitHub repository after a successful submission.
For a detailed walkthrough, check out the video below:
https://github.com/user-attachments/assets/e635a168-6c43-4132-8cb9-36bcc750076e
<br/>Why CodeHub?
Showcase Your Problem-Solving Skills
Having a GitHub repository with your Codewars solutions highlights your dedication to learning and improving as a developer. It serves as a portfolio that recruiters and hiring managers can easily review to see your coding abilities and consistency in action.
Track Your Progress
By default, CodeHub organizes all of your Codewars solutions in your repository by difficulty level (6-kyu, 5-kyu, etc.). Each problem is stored in its own directory containing separate solution files for each language and a README for the problem description (example). This clear structure makes it easy to track your progress and see how much you've improved over time.
Save Time
CodeHub automates the process of committing and pushing your solutions to GitHub. Once set up, this extension will save you the time and hassle of manually copying, pasting, and uploading each solution to your repository.
<br/>Developing Locally
-
Fork this repo and clone it to your local machine.
-
Install Node.js and npm here.
-
Create a
credentials.jsfile in the root directory of theCodeHubfolder with the following content:export const clientId = "YOUR_ID"; export const clientSecret = "YOUR_SECRET";- For more information on creating GitHub apps, visit the official documentation.
-
In the root directory, run the following command:
- For Chrome:
node build.js - For Firefox:
node build.js --firefox
- For Chrome:
-
Load the extension in developer mode.
-
For Chrome:
- Go to the extensions page (chrome://extensions)
- Enable "Developer Mode" and click "Load unpacked"
- Select the cloned
CodeHubfolder
-
For Firefox:
- Go to the extensions page (about:debugging)
- Click on "This Firefox" and then "Load Temporary Add-on"
- Select the
manifest.jsonfile from the root directory of the clonedCodeHubfolder
-
-
Enjoy!
Support
We appreciate your feedback and contributions! Here’s how you can help:
- Star this repository
- Leave us a review on the Chrome Web Store or Firefox Add-Ons
- Create a bug report
- Submit a feature request
Code of Conduct
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. More details can be found at this project's code of conduct.
<br/>Acknowledgements
LeetHub
After manually pushing hundreds of my Codewars solutions to GitHub, I searched for a tool to automate the process and came across LeetHub - an extension that does this for LeetCode solutions. While LeetHub wasn’t compatible with Codewars, its core functionality and UI served as an inspiration for the development of CodeHub.
Frances Coronel
A big thank you to Frances Coronel for her README template - it was a great starting point for structuring the README for this project.
Learning Resources
The resources below helped me learn how to build a browser extension:
