First off, thank you for taking the time to contribute! Contributions make the open-source community an amazing place to learn, inspire, and create. Any contribution you make to RankerHub is greatly appreciated.
This project is part of open-source programs like NSoC 2026 (Nexus Summer of Code). Please follow the guidelines below to ensure a smooth contribution process.
Please maintain a respectful, welcoming, and inclusive environment. Be helpful to other contributors and follow standard open-source collaboration practices. Review our full Code of Conduct for more details.
Ensure you have the following installed on your local machine:
- Fork the RankerHub Repository to your own GitHub account.
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/RankerHub.git cd RankerHub
Run the following command to install the project dependencies:
npm install- Copy the
.env.examplefile to create a.envfile in the root directory:cp .env.example .env
- Open the
.envfile and fill in your Firebase configuration keys (see the Firebase Setup below).
Start the local development server:
npm run devThe application will be running locally at http://localhost:5173.
To get your own Firebase credentials for local development:
- Go to the Firebase Console.
- Create a new Firebase project (e.g.,
rankerhub-dev). - Add a Web App to your project.
- Copy the
firebaseConfigobject values and paste them into your.envfile:VITE_FIREBASE_API_KEYVITE_FIREBASE_AUTH_DOMAINVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_STORAGE_BUCKETVITE_FIREBASE_MESSAGING_SENDER_IDVITE_FIREBASE_APP_IDVITE_FIREBASE_MEASUREMENT_ID
- Enable GitHub Provider in Firebase Authentication:
- Go to Authentication -> Sign-in method -> Add new provider -> GitHub.
- Register a new OAuth App in your GitHub Developer Settings, configure the callback URL, and paste the Client ID and Client Secret into the Firebase console.
- Enable Cloud Firestore and set up your security rules.
RankerHub uses GitHub as its primary authentication provider. To run the app locally with full functionality (including private repo sync checks), you need to register a custom GitHub OAuth App.
- Go to your GitHub Developer Settings.
- Click OAuth Apps → New OAuth App.
- Fill in the details:
- Application name:
RankerHub Dev(or any name you prefer) - Homepage URL:
http://localhost:5173 - Application description: (optional)
- Authorization callback URL:
http://localhost:5173(this will be updated after Firebase setup)
- Application name:
- Go to the Firebase Console, select your project.
- Navigate to Authentication → Sign-in method → GitHub (edit).
- Copy the Callback URL shown in Firebase (looks like
https://identitytoolkit.googleapis.com/...). - Go back to your GitHub OAuth App settings → paste this URL as the Authorization callback URL.
- Save the GitHub OAuth App.
- Copy the Client ID and generate a Client Secret.
- Paste both into the Firebase GitHub provider configuration and click Save.
For the private repo sync feature to work, the OAuth App needs the repo scope:
- In your GitHub OAuth App settings, scroll to Scopes.
- Ensure the app requests the
reposcope (grants read access to private repositories). - For local development, you can test this by authorizing the app with a test repository.
Note: When you first sign in with GitHub on your local instance, you'll see a consent screen showing the requested scopes. Ensure
reposcope is listed before authorizing.
- Start the dev server (
npm run dev). - Open
http://localhost:5173and click Sign in with GitHub. - Complete the OAuth flow — you should be redirected back to the app authenticated.
- Navigate to the GitRank section to verify private repo data loads correctly.
To keep the repository history clean, please follow these branching and commit message conventions:
Create a new branch from main before starting your work:
feat/feature-name– for new featuresfix/bug-name– for bug fixesdocs/doc-updates– for documentation changesrefactor/refactored-code– for code restructuring without changing behaviorchore/task-name– for maintenance tasks or package upgrades
Example:
git checkout -b feat/user-leaderboardWrite clear and descriptive commit messages following the semantic commit pattern:
feat: add female developer ranking pagefix: resolve auth validation issuedocs: update setup steps in READMEstyle: fix button alignment on dashboardrefactor: clean up firebase initialization code
- Find an Issue: Search the Issues tab for open issues.
- Request Assignment: Comment on the issue stating that you'd like to work on it. Wait for a project maintainer to assign it to you before starting work.
- Please do not work on issues that are already assigned to someone else.
- All PRs submitted without an assigned issue will not be merged.
- Submit a Pull Request:
- Once your changes are complete, commit and push them to your fork.
- Go to the original RankerHub repository and click New Pull Request.
- Fill out the PR template completely: explain what changes you made and link the issue it resolves (e.g.
Closes #12). - Ensure there are no merge conflicts and that your build passes.
- Be patient! Maintainers will review and merge your PR.
Thank you for contributing to RankerHub! 🌟