Skip to content

🤗 Welcome

👍🎉 First off, We are really glad you're reading this, because we need volunteer developers to help improve the Field Mapping Tasking Manager (FMTM)! 🎉👍

We welcome and encourage contributors of all skill levels, and we are committed to making sure your participation is inclusive, enjoyable, and rewarding. If you have never contributed to an open source project before, we are a good place to start, and we will make sure you are supported every step of the way. If you have any questions, please ask!

You can see an overview of the project and the process we have gone through in developing FMTM so far in these slides

Furthermore, there are many ways to contribute to the Field Mapping Tasking Manager (FMTM), which includes:

Testing

Right now, we are in the process of building the prototype. We warmly welcome your input in testing and sharing your feedback. If you are also interested in coordinating a field testing session, please reach out!

Code contributions

Create pull requests (PRs) for changes that you think are needed. We would really appreciate your help!

Skills with the following would be beneficial:

  • Python
  • FastAPI
  • TypeScript / JavaScript
  • React
  • Docker
  • CI/CD workflows

Our latest task board can be found here.

Report bugs and suggest improvements

The issue queue is the best way to get started. There are issue templates for BUGs and FEATURES that you can use, you could also create your own.

Once you have submitted an issue, it will be assigned one label from the following label categories.

If you are wondering where to start, you can filter by the good first issue label.

Report security vulnerabilities

Please inform a maintainer as soon as possible, including the CVE code.

Message via the HOTOSM Slack or direct email would be preferred, but via Github issue is also possible.

🤝 Thank you

Thank you very much in advance for your contributions!! Please ensure you refer to our Code of Conduct. If you've read the guidelines, but are still not sure how to contribute on Github, please reach out to us via our Slack #geospatial-tech-and-innovation.

Code Contribution guidelines

Workflow

We operate the "Fork & Pull" model explained at About Pull Requests

Further details of our development workflow can be found here

If you are reporting a problem

  • Describe exactly what you were trying to achieve, what you did, what you expected to happen and what did happen instead. Include relevant information about the platform, OS version etc. you are using. Include shell commands you typed in, log files, errors messages etc.
  • Please open a separate issue for each problem, question, or comment you have. Do not reuse existing issues for other topics, even if they are similar. This keeps issues small and manageable and makes it much easier to follow through and make sure each problem is taken care of.

Documentation

Project documentation should be in Markdown format, and in a docs subdirectory. While it is possible to use HTML in Markdown documents for tables and images, it is preferred to use the Markdown style as it's much easier to read.

See a detailed guide on documentation contributions here.

Pre-Commit Hooks

Pre-Commit Hooks are used in this repo to enforce coding style:

  • Python adheres mostly to PEP8 convention, amongst others, using the tool ruff.
  • TypeScript / JavaScript code is formatted using prettier.
  • Markdown files are formatted using markdownlint.
  • Raq SQL is formatted using sqlfluff.

Please install the pre-commit hooks before contributing:

pip install pre-commit
pre-commit install

Commit Sign-Off Policy

  • In order to commit to this repository, please read and accept our commit sign-off policy
  • This is simply to verify that you are the author of the commits you make.
  • If possible, please add to your commit footer the Signed-of-by info: Signed-off-by: John Doe <joe.doe@example.com>

Our Development Practices

To see more detail on the development practices used at HOT, please visit this page