I've heard about Humanitarian Toolbox a few times on the .NET Rocks Show. In case you've never heard of it, this is what it is:
Humanitarian Toolbox (HTBox) is a charity supporting disaster relief organizations with open source software and services. We are developers, designers, testers, and industry professionals who want to contribute our unique skills in disaster relief aid. Whether it is through creating apps that map the spread of disease or maintaining software that helps to optimize the delivery of relief supplies, Humanitarian Toolbox has a goal of creating software and programs for relief organizations to have ready in times of need.
I've joined Humanitarian Toolbox hackathon this weekend to try it out.
How does it work
Everyone involved in this project is volunteering their skills and time to build the software. The project is OSS. Hosted on GitHub under https://github.com/HTBox/allReady.
allReady is the web application based on .NET and ASP.NET Core. Volunteers can fork the repository and start working on any existing issues. To reduce contention on the issues caused by concurrent work, you can be a good Samaritan, and ping others, letting th/m know you'd like to work on a particular item.
Next step after the issue is assigned to you is to fork the repository and start working on it. Create a branch, implement a fix/feature, and submit a pull request (PR) to the original repository (
master branch). There can be going back and forth until changes fix the issue. The unit tests suite is in place to help you to ensure new changes are not breaking the code that was there before. If changes are accepted, it will get merged. Congrats, you've contributed!
When working in a distributed fashion, pinging multiple people can be problematic. First, you need who the people are responsible for different things. Second, by pinging individuals, you can skip people and by that reduce your chances to get a response faster. A potential resolution to this could be as simple as leveraging GH groups. Imagine you want to work on a database related issue. You'd ping
@HTBox\database group to raise questions. Need to have a review of your PR? Not a problem, ping
@HTBox\pr-reviewers and someone will get back to you.
Note: additional benefit of this approach is that people can join and leave groups, it doesn't affect contributors that need to communicate with group members. Communication also doesn't depend on one familiarity with all member names and what they do on the project.
Should I try this?
If you've never contributed to an OSS project, this is an excellent opportunity to do so. You get to interact with other developers, learn new technologies (.NET / MVC / EF Core, and much more). You get to find out how software can help after a disaster and be proud of any contribution that will assist people in need.