Skip to content

Commit

Permalink
Merge pull request #10 from dev-ahmadbilal/develop
Browse files Browse the repository at this point in the history
feat(docs): add contribution guide and future roadmap
  • Loading branch information
dev-ahmadbilal authored Sep 5, 2024
2 parents 24f6c9c + a020100 commit a0cad7a
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
61 changes: 61 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Contributing to islam.js

Thank you for your interest in contributing to islam.js! We welcome contributions from the community to help improve the library. Please follow the guidelines below to get started.

## How to Contribute

### 1. Reporting Issues

If you encounter any bugs or have suggestions for improvements, please open an issue on our [GitHub repository](https://github.com/dev-ahmadbilal/islam.js/issues). Provide a clear description of the problem and, if possible, steps to reproduce it. Please check our templates for [Bug Report](./.github/ISSUE_TEMPLATE/bug_report.md) and [Feature Request](./.github/ISSUE_TEMPLATE/feature_request.md).

### 2. Submitting Pull Requests

To contribute code, follow these steps:

1. **Fork the Repository:**
Click on the "Fork" button at the top right of this repository to create a copy of the project under your GitHub account.

2. **Clone Your Fork:**
```bash
git clone https://github.com/dev-ahmadbilal/islam.js.git
cd islam.js
```

3. **Create a Branch:**
Create a new branch for your changes. Use a descriptive name for the branch.
```bash
git checkout -b your-feature-branch
```

4. Make Your Changes:

Implement your changes or additions. Make sure to follow the existing code style and add tests if applicable.

5. Commit Your Changes:

Stage and commit your changes with a clear and concise commit message. We are following conventional commits.
```bash
git add .
git commit -m "feat(scope): add a descriptive message for your changes"
```

6. Push Your Branch:
Push your branch to your forked repository.
```bash
git push origin your-feature-branch
```

7. Create a Pull Request:
Go to the Pull Requests section of the main repository and click "New Pull Request." Select your branch and provide a clear description of your changes. Submit the pull request for review. You can check our [Pull Request Template](./.github/PULL_REQUEST_TEMPLATE.md).

### 3. Code of Conduct
Please adhere to our Code of Conduct while participating in discussions or contributing to the project. Treat everyone with respect and kindness.

### 4. Contribution Guidelines
- **Code Quality:** Ensure that your code is well-written, follows the project’s coding standards, and passes all existing and new tests.
- **Documentation:** Update the documentation if your changes affect the library’s usage or APIs.
Testing: Add or update tests to cover your changes. Make sure all tests pass before submitting your pull request.
### 5. License
By contributing to this project, you agree that your contributions will be licensed under the [MIT License](LICENSE).

Thank you for helping us make islam.js better!
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,32 @@ I have made every effort to use authentic sources, but as with any human endeavo

By using this package, you acknowledge that it is provided as-is, and you agree to use it responsibly.

## Future Roadmap

### Asset Management Optimization

Currently, the `islam.js` package includes a large `assets` folder, which increases the package size to approximately 33MB. To improve the efficiency of package distribution and installation, the following steps are planned:

1. **Compression of Assets:**
- **Objective:** Reduce the overall package size by compressing the assets folder before publishing the package.
- **Approach:** Implement a compression strategy to package assets into a compressed format (e.g., ZIP, GZIP) that will be included in the published package.
- **Benefit:** This will significantly decrease the package size, making it more manageable and quicker to download for users.

2. **Automatic Decompression on Installation:**
- **Objective:** Automatically decompress the assets folder during the installation process.
- **Approach:** Develop a post-install script or use existing tools to decompress the assets once the package is installed.
- **Benefit:** This ensures that users receive the full set of assets without manual intervention while maintaining a smaller initial package size.

### Test Coverage
I have setup the baseline for tests but currently the test coverage is 38%. We need to increase it to at least 80%.
1. **Unit Tests:**
- **Objective:** Enhance unit test coverage.
- **Approach:** Implement comprehensive unit tests using frameworks like Jest or Mocha. Focus on critical functionalities and edge cases to ensure robust testing.
- **Benefit:** Improved test coverage will increase confidence in code stability and reliability, ensuring that all functionalities perform as expected.

These enhancements aim to streamline the package management process, improve user experience, and ensure that `islam.js` remains a robust and efficient tool for Islamic applications.
I welcome contributions to help me achieve these goals. If you're interested in contributing, please check out our [contributing guidelines](CONTRIBUTING.md) and get in touch!

## License

This package is freely available for everyone to use. If you find it beneficial, please remember me in your prayers.
Expand Down

0 comments on commit a0cad7a

Please sign in to comment.