Thank you for taking the time to contribute to our project. Please take a moment to read the following guidelines before contributing:
⚠️ IMPORTANTPull Requests having no issue associated with them will not be accepted. Firstly get an issue assigned, whether it's already opened or raised by you, and then create a Pull Request.
An automated process has been implemented to ensure the timely management of Pull Requests (PRs) on this platform.
PRs that have been open for a duration exceeding 45 days will be automatically closed, so please plan accordingly.
-
Open Source Etiquette: If you've never contributed to an open source project before, have a read of Basic etiquette for open source projects.
-
Basic familiarity with Git and GitHub: If you are also new to these tools, visit GitHub for complete beginners for a comprehensive introduction to them.
-
Make sure you have Node.js installed.
-
Make sure you have NPM installed.
-
Make sure you have Docker installed.
To get started, look at the existing Issues or create a new issue!
Follow these steps to setup OpenGrame on your local machine
-
Fork the project
-
Clone the project to run on your local machine using the following command:
git clone https://github.com/<your_github_username>/OpenGrame.git
-
Get into the root directory
cd OpenGrame
-
Install all dependencies by running
npm install
-
Create your branch
git checkout -b <your_branch_name>
-
Run and view the application on localhost
run dev
P.S: If you have
docker
installed in your system, you can follow these steps to set up the environment:
- After forking and cloning the repo(as mentioned above), get into the project directory:
cd OpenGrame/
- Start the docker container with:
docker-compose up
- Now start adding your changes. Note: You don't need to restart the container again and again after starting it once, because the changes you make will reflect in the container instantly.
-
Make your changes before staging them.
-
Stage your changes
git add <filename>
-
Commit your changes
git commit -m "<your-commit-message>"
-
Push your changes to your branch
git push origin "<your_branch_name>"
-
Create a PULL REQUEST 💣
Click compare across forks if you don't see your branch
-
Open GitHub Desktop: Launch GitHub Desktop and log in to your GitHub account if you haven't already.
-
Clone the Repository:
- If you haven't cloned the OpenGrame repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository."
- Choose the OpenGrame repository from the list of repositories on GitHub and clone it to your local machine.
-
Switch to the Correct Branch:
- Ensure you are on the branch that you want to submit a pull request for.
- If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch.
-
Make Changes: Make your changes to the code or files in the repository using your preferred code editor.
-
Commit Changes:
- In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit.
- Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch.
-
Push Changes to GitHub: After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub.
-
Create a Pull Request:
- Go to the GitHub website and navigate to your fork of the OpenGrame repository.
- You should see a button to "Compare & pull request" between your fork and the original repository. Click on it.
-
Review and Submit:
- On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request.
- Once you're satisfied, click the "Create pull request" button to submit your pull request.
-
Wait for Review: Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the OpenGrame repository.
⭐️ Support the Project If you find this project helpful, please consider giving it a star on GitHub! Your support helps to grow the project and reach more contributors.
- Select an issue template from the issues tab. Otherwise, choose Other if it doesn't match what you're looking for.
- When creating an issue, make sure you fill up all the fields properly.
- Make sure that you are NOT raising a duplicate issue.
- If you want to work on the issue, please click on the I am willing to work on this issue checkmark.
- Add the point label that corresponds to the issue. See our levels chart to help you.
- Note: If you aren't the owner of the issue, please comment that you're willing to work on the issue and wait for maintainers to assign you the issue. Also, don't work on the issue if you're NOT assigned.
- Please do not start working on the issue if you aren't yet assigned and have the
ready 🚀
label. - Work on only ONE issue at a time.
Closing the issue 📍
- If you decide to close the issue, please leave a brief comment describing why(e.g., I'm busy with other obligations.) before you do.
- Note: If the Pull Request associated with the issue gets merged and the issue still remains open, it's your responsibility to close the issue.
We follow a standardized commit message format using Commitlint to ensure consistency and clarity in our commit history. Each commit message should adhere to the following guidelines:
-
Type: The commit type must be one of the following:
feat
: A new feature or enhancement.fix
: A bug fix.docs
: Documentation changes.style
: Code style changes (e.g., formatting, semicolons).refactor
: Code refactorings with no feature changes or bug fixes.test
: Adding or improving tests.chore
: General maintenance tasks, build changes, etc.
-
Scope (Optional): The scope provides context for the commit, indicating the specific part of the project being affected. Use a short description in lowercase (e.g.,
auth
,navbar
,README
). -
Description: A brief and meaningful description of the changes made. Start with a capital letter and use the imperative mood (e.g., "Add new feature" instead of "Added new feature").
-
Issue reference (Optional): Include the issue number associated with the commit (e.g.,
#123
).
feat: Add user authentication feature
fix(auth): Resolve login page redirect issue
docs: Update installation instructions
style: Format code according to project guidelines
refactor(navbar): Improve responsiveness
test: Add unit tests for API endpoints
chore: Update dependencies to latest versions
fix: Handle edge case in data processing (#456)
Added new stuff
Fixed a bug
Updated code
auth feature update
chore: fixed some stuff
git commit -m "feat(auth): Implement user signup process (#789)"
-
When you submit a pull request, several tests are automatically run as GitHub Actions. If any of these tests fail, it is your responsibility to try and resolve the underlying issue(s). If you don't know how to resolve the underlying issue(s), you can ask for help.
-
Each pull request should contain a single logical change or related set of changes that make sense to submit together. If a pull request becomes too large or contains too many unrelated changes, it becomes too difficult to review. In such cases, the reviewer has the right to close your pull request and ask that you submit a separate pull request for each logical set of changes that belong together.
-
Link the issue you have resolved in the Pull Request Template (e.g. Closes/Fixes #99).
-
Use our Commit messages Guidelines for your changes.
-
Do not re-open a pull request that a reviewer has closed.
- Make sure to tick the "Allow edits from maintainers" box. This allows us to directly make minor edits / refactors and saves a lot of time.
Note If your pull request has merge conflicts with the
main
branch (GitHub checks for this automatically and notifies you), you are responsible for resolving them. You can do this by merging themain
branch into your branch (git pull upstream main
), and then pushing the updated branch to your fork (git push
). If you need more tips, check out Resolving a merge conflict on GitHub.
- Make sure to tick the "Allow edits from maintainers" box. This allows us to directly make minor edits / refactors and saves a lot of time.
- If something is missing here, or you feel something is not well described, either create a PR, raise an issue, or do a code review of the person’s PR (ensure that your review conforms to the Code of Conduct)
We came up with this chart so you can gauge the issue's difficulty and pick ones that fit within your skillset:
Points | Contribution |
---|---|
priority: low : |
Addition of new links/categories or doing any small task (e.g fixing typos) |
priority: medium : |
Modifying an existing feature |
priority: high : |
Making completely new feature |