From a020100b511c4fde5e6db6465708424ec1dab111 Mon Sep 17 00:00:00 2001 From: Ahmad Bilal Date: Thu, 5 Sep 2024 10:09:16 +0500 Subject: [PATCH] feat(docs): add contribution guide and future roadmap --- CONTRIBUTING.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 26 +++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c31c5b2 --- /dev/null +++ b/CONTRIBUTING.md @@ -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! diff --git a/README.md b/README.md index a09fc31..dabcd29 100644 --- a/README.md +++ b/README.md @@ -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.