|
| 1 | +## Contributing to JOSA.community |
| 2 | + |
| 3 | +Thank you for your interest in contributing to our project! We welcome your help and appreciate your support. |
| 4 | +To ensure a smooth and collaborative process, please take a moment to review this contributing guide. |
| 5 | + |
| 6 | +## Code or Documentation Contributions |
| 7 | + |
| 8 | +1. [Fork this repository](https://github.com/jordanopensource/community-web/fork). |
| 9 | +2. Clone the forked repository to your local machine with this command: |
| 10 | +`git clone https://github.com/<your github username>/community-web.git` |
| 11 | +3. Switch to `development` branch with this command: `git checkout development`. |
| 12 | +**If your contribution is a documentation, jump to step 7 below**. |
| 13 | +4. (**_You can ignore this step if you're using docker compose_**) Create a `.env` file and copy the content of [`.env.sample`](https://github.com/jordanopensource/community-web/blob/development/.env.sample) file into it, |
| 14 | +then add the value(s) of environment variable(s). |
| 15 | +You can use the current running API URL as the value to `NUXT_PUBLIC_COMMUNITY_API_URL` variable as the following: |
| 16 | +`NUXT_PUBLIC_COMMUNITY_API_URL=https://community.api.prod.josa.ngo/v2`. |
| 17 | +(_other environment variables are optional_). |
| 18 | + |
| 19 | +5. [Run the project locally](https://github.com/jordanopensource/community-web/blob/main/CONTRIBUTING.md#running-the-project-locally). |
| 20 | +6. Check current [issues](https://github.com/jordanopensource/community-web/issues), |
| 21 | +and if you're a beginner, you can [filter issues with `good first issues` label](https://github.com/jordanopensource/contributions-web/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest+label%3A%22good+first+issue%22). |
| 22 | +If you decide to work on one of the issues, write a comment on the issue asking to be assigned to it. |
| 23 | +_Do not work on issues that you're not assigned to in order to avoid duplicate work_. |
| 24 | +7. Create a new branch from `development` branch for the task that you want to work on: |
| 25 | + `git checkout -b <prefix>/branch-title` |
| 26 | + - `<prefix>`: The prefix should be one of the following: |
| 27 | + - `feat` for new features |
| 28 | + - `fix` for bug fixes |
| 29 | + - `task` for other general tasks |
| 30 | + - `docs` for documentation |
| 31 | + - `branch-title` should be short and concise and written in kebab-case (separate each word with '-') |
| 32 | +**Example**: |
| 33 | + ```sh |
| 34 | + git checkout development && git pull # pull the latest changes from development branch |
| 35 | + |
| 36 | + git checkout -b fix/type # create new branch |
| 37 | + ``` |
| 38 | + |
| 39 | +8. Write descriptive and concise commit messages. |
| 40 | + Follow these guidelines when writing commit messages: |
| 41 | + - Limit the first line of the commit message to 72 characters or less. |
| 42 | + - Use the imperative mood and present tense in the subject line, e.g. "Fix typo in the homepage" instead of "Fixed typo...". |
| 43 | + - Use the body of the commit message to provide additional context or details, _if necessary_. |
| 44 | + - Use bullet points in the body of the commit message to break down changes, _if necessary_. |
| 45 | + |
| 46 | +9. Push to your branch and then make a pull request from your branch to the base `development`. |
| 47 | + |
| 48 | +### Running the Project Locally |
| 49 | + |
| 50 | +#### Using Docker |
| 51 | +Make sure that [docker](https://docs.docker.com/engine/install/) is installed on your system |
| 52 | +and then run the project locally using [docker compose](https://github.com/jordanopensource/community-web/blob/development/docker-compose.yaml) with this command: |
| 53 | +`docker compose up`. |
| 54 | + |
| 55 | +#### Using Node: |
| 56 | +1. Make sure [Node](https://nodejs.org/en) v18 is installed. Alternatively, you can use [NVM](https://github.com/nvm-sh/nvm#installing-and-updating) to install any node version. |
| 57 | +2. Navigate to the project directory and run `npm i` to install the dependancies. |
| 58 | +3. Run the project in development mode by running `npm run dev`. You can now preview the project on port `3000` by visiting `http://localhost:3000/` in your browser. |
| 59 | + |
| 60 | +## Issues and Features Requests |
| 61 | + |
| 62 | +If you want to report a bug or submit a feature request, please use one of the [templates here](https://github.com/jordanopensource/community-web/issues/new/choose). |
0 commit comments