Thank you for your interest in contributing to the Region Tracker project! This document provides guidelines for contributing to different parts of the project. Please adhere to the specific guidelines provided in each directory's CONTRIBUTING file.
For detailed instructions specific to each part of the project, refer to the CONTRIBUTING files in the respective directories:
The project is divided into three main directories as mentioned in the README file:
- Frontend:
./frontend
- Backend:
./backend
- Deployment:
./deployment
Make changes only in the directory you are working on. Adhere to the structure outlined in the respective README files.
- For JavaScript (used in frontend and backend), follow the Airbnb JavaScript Style Guide.
- For Python (used in deployment scripts), use Black for code formatting.
Unfortunately, we don't have any automated tests yet. Hence, we can't enforce any testing requirements.
Nevertheless, it's highly recommended to run a full DB + backend + frontend setup for running some manual tests.
To run the full setup, follow the instructions in the deployment README.
To be short, you need to:
- Install Docker and Docker Compose.
- Setup .env file
- Run the following command to start all services and initialize the database:
make start-all
For the details look in the deployment README.
At least, please run the code you have introduced or changed :)
Use check-dir
pre-commit hooks to maintain consistency across different directories.
Set up the pre-commit hook with:
git config core.hooksPath .git-hooks
Follow this format for all commit messages:
<Type>: <Topic>.
<Description>
[Issue: #<GitHub Issue Number>]
Signed-off-by: <Your Name> <Your Email>
- Type can be one of the following:
front
: Frontendback
: Backenddeploy
: Deployment Or leave it blank if the commit is not specific to any of the above.
- Ensure the commit message is concise yet descriptive.
- If the commit fixes an issue, add the issue number in the commit message.
- Sign your commits to verify your identity (use
git commit -s
).
- Fork the repo, create your feature branch from
main
. Branch name should be in the formfeature/<Feature Name>
for new features andfix/<Issue Number>
for bug fixes. - Ensure code passes linting, has adequate test coverage, and adheres to our structure and style guide.
- Create a PR to merge your feature branch into
main
of the original repo. - In the PR description, provide a clear explanation of your changes and the motivation behind them.
- In the PR description, provide the Issue number that your PR fixes in a form
Fixes #<Issue Number>
. This will trigger bots to check that the PRs changes address all the requirements of the issue. - PRs are reviewed with the help of AI bots @coderabbitai and @CodiumAI-Agent. Pay attention to their comments. If you disagree, provide a clear explanation in the comments.
- Resolve all discussion threads and ensure mandatory checks pass before merging.
- If a PR is inactive for more than 7 days, a 'stale' label will be added to it and a reminder will be posted in the PR.
- If a PR is inactive for more than 14 days, it will be closed.
- We are not against using AI tools like GitHub Copilot or ChatGPT to generate commit messages or PR descriptions. Just make sure that the generated text is correct and relevant.