RoR for poor farmers in Africa

Hi all
I am a scientist at Penn State University and the United Nations Food and Agricultural Organisation. I work to help poor farmers in Africa and elsewhere grow more food by combatting pests and diseases. There are two ways we do this: an Android app that runs TensorFlow object detection offline inside the food without a web connection (see here). The other way is through an Open Access library on content called PlantVillage with a QA forum. This platform is 6 years old and had around 8 million visitors with around 80-100k new month. https://plantvillage.psu.edu/ The platform is RoR

All of this is a public good, aimed at helping poor farmers who typically earn a few dollars/day. I am spending a lot of money on developers (in India) and I raise money with grant writing etc. I am having issues around quality and cannot afford the necessary QA.

I was wondering if I open sourced the site would your community be interested in helping? We work directly with farmers and through the United Nations. It really can be a very impactful project

My goal is an AI-driven platform that is the number 1 resource in the world for smallholder farmers around the world. All ad free and without haresting their data to sell

I would love to hear your views on whether open sourcing would be a good idea and would people join in?

Thanks

David

David Hughes
Dept Entomology & Biology,
Penn State
https://sites.psu.edu/hugheslab/
https://plantvillage.psu.edu/
dhughes@psu.edu

@zombieantguy, @plantvillage
814 863 6073 (Office)

…………………………………………

2018-2019, UN FAO Fellow, Rome and visiting professor at La Sapienza, Rome

…………………………………………

Sure, why not?

Hi David,

It’s an excellent idea.
I would really glad to help you in terms of testing the application.

Hi David,

I will like to help. My experience is RoR

Josue

Hi David,

I will like to help too.

  • Frantz

Hi David,

I would certainly contribute a small bit of time lending my expertise for free if you made it open source, specifically around code quality. One of my specialties is coming into very degraded RoR codebases, implementing a cleanup plan, ratcheting in order to get things in order (writing tests for current expected state, making improvements, then adjusting tests to reflect), and instilling best practices.

While I could not guarantee much of my time (I need to reserve most of my time for paid obligations), I would certainly be happy to contribute some Pull Requests to bring the code quality level up (measurable by something like Code Climate, for example) and introduce some best practices.

I love the cause, so happy to give back.

You can find me here: https://www.linkedin.com/in/elliottkevin/

Best,

Kevin

Kevin Elliott

Entrepreneurial focused full stack engineering

Hi Kevin
Many thanks. I had a number of positive replies which was great!!!

I would make everything open. There is also the app. It is tightly linked to the site of course so I think they both should be available for people to check/work on

thanks very much

David

Thats great Mohan. Thanks!

that is great. Thanks

Besides a "yes" to open sourcing, I would suggest you look at other
communities and organizations as well. There are many efforts to
bring together socially conscious tech people and the projects that
need them: codecorps.org, codeforgood.io -- search for "tech" and
"social good" :slight_smile:

Good luck!

really interested, willing to help.
I’m an expert on Ruby and Rails, have 15 years of expertise,(Also learn a bit about machine learning,python, tensorflow, keras)

really good at backend development, though a bit weak on frontend,

let me know what I can help.

Hi David,

re open sourcing the project. One thing you’ll need to figure out is how you handle incoming pull requests and who has authority to apply changes.

You won’t want to just let anybody make changes - so that means you’ll need to find a trusted person who can invest a fairly significant chunk of time in reviewing and accepting/declining input.

That person (or people) need to have a good overall understanding of the whole project codebase.

It takes a fairly significant investment to do this properly as if done half-heartedly then other developers who want to contribute will quickly get put off.

(There is nothing worse than doing a bunch of work for free for a project only to have that work sit un-used for weeks or months)

there could be a massive return for you if you get this to work properly - but it will take time, effort and probably money to get it going.

cheers,

Rob

Hi Rob
Many thanks. Really appreciate that.

I was thinking of a blended model where I continue to engage my RoR developer who can push changes, check things. We could focus on immediate, critical tasks and the community of volunteers could contribute on tasks that are important (new features, code checking) but not immediate. As the community completes these things we could check and push live.

"find a trusted person who can invest a fairly significant chunk of time in reviewing and accepting/declining input.

That person (or people) need to have a good overall understanding of the whole project codebase."

Maybe in time, such a person comes from the volunteer community. It could also be I raise funds for such a person since I am constantly raising funds from public sector (just not the kind of funds a start up would have)

Many thanks for the very useful insights

d

many thanks Femto.

Got some great replies and now need to talk to my Uni on what open license we can apply

will get back to you

d

excellent suggestions Hassan. Thanks. I will look those up and get back to you when we open up our code. Have to talk to the Uni people about what license we should use?

David,

Before you opensource the project, you will want to have a Senior RoR developer comb through to make sure the authentication credentials that should be private have been removed from the source code. These could be API keys, database passwords e.t.c. Even if it’s removed from the current version of the source code this information is available in the git repository history, which is just a normal function of version control systems… they allow you to go back into the past. So if you just click the button and open source the project as-is you can open yourself to several security risks. Perhaps the idea will be to cleanup secret info from the app then port the files into a fresh git repo which of won’t contain the history. You will also need to ensure that for new code development security errors like this are avoided. Same applies to the android app if you want to opensource that.

Essentially my point is that to be successful at running an opensource project in any language you need Sr software developers that are committed to being gatekeepers of the code, else things can go downhill pretty quickly. You might consider paying 1 or 2 trusted people to take on this role. Additionally to get code contributions from developers you will need to do some type of “marketing” to generate interest. Developers will not just contribute code and keep contributing simply because the software is opensource.

-Wale

http://railsfever.com/

https://www.linkedin.com/in/fullstackwebdeveloper

Hi Wale
Many thanks

Yes, I have been discussing that issue with IT people here

And I would likely keep a developer on pay from the current team to serve that role

Yes, the marketing is key! I would hope to continue to generate interest and convince the community this is worth doing

I read newsletters are still good way for that?

What would your suggestions be?

THanks

David

Count me in.

And to add to what Wale has said. After considering the entire architecture of the web and mobile application, you might just open source a part of it for a start and not the entire code base.