OpenHarvest is an open source software platform that is developed based on the non for profit organization Heifer's requirements to help farmers in Malawi's ndichuma project. The platform is used by a co-op manager to keep track of farmers, fields, and crops. Displaying visual data and using the latest technologies to ensure farmer's succeed in growing their crops and making a profit. This is done by sending sms weather based recommendations for when specific tasks from the recommendation matrix should be performed as well as integrating weather forecasts and automatic data driven verification to confirm if farmers have performed the behaviour or not. Based on these behaviours the tool will allocate blockchain based reputation tokens which will be recorded for each farmer. Each farmer's reputation will be shared with Heifer as they will be working with financial institutions to provided lower rates for loans.
OpenHarvest is a winner in the 2021 Call for Code. With the help of IBM Sustainability Accelerator program the project has being evolving. Please check the IBM Sustainability Accelerator blog to learn about the project development and its collaboration.
Follow us on Medium! https://medium.com/@openharvest
Originally OpenHarvest was a submission for IBM's call for code challenge, a global competition to use code to create a solution to environmental issues such as sustainability. OpenHarvest was a web application designed to balance farming production in India. Farmers in India are struggling with marketing their crops. The greatest instance of this was with India's recent onion shortage. Essentially, farmers are being told that the market needs specific goods which results in a massive surplus as all the farmers dedicated their crops to the market's needs. This results in many farmers’ watching entire crops go to waste. These crops can take over a year to grow and leave the farmer in debt rather than making a profit. One of our group members has great insight into this issue as he has family in the farming industry.
OpenHarvest was a top solution created for the 2021 Call for Code IBMer Challenge. It took on a key agricultural challenge prompt in the Call for Code competition.
This is built against master on request.
Available at: https://openharvest.net
flowchart LR
subgraph react["React Client"]
direction LR
cc(Carbon Components)
wcc(Watson for IoT Carbon Components)
end
subgraph node["Node.js REST API"]
exp(Express HTTP Framework)
end
react<-->node
node<-->MongoDB
node<-->AfricasTalking
node<-->IBMFoodTrust
User<-->react
EthersJS<-->node
Colony<-->node
AWS-KMS<-->node
flowchart LR
subgraph ibm_cloud["IBM Cloud"]
direction TB
ibm_ib(Image Builder)<-->ibm_cr
ibm_ce(Code Engine Running API Image)<-->mongodb(MongoDB Managed Service)
ibm_cr(Private Container Registry)--Deploys API Image-->ibm_ce
end
subgraph dns["Cloudflare DNS"]
domain(OpenHarvest.net)
end
dns-->ibm_cloud
User<-->dns
More details are available here
- Node minimim: v16 and NPM (Included with node)
- Git
- MongoDB Windows users must download Mongo DB Community: https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.1-signed.msi Instructions on deploying and configuring this are included below
-
Install mkcert. For Mac or Linux:
brew install mkcert
. Windows user can downloadmkcert.exe
from Mkcert GithubInstall ts-node for Windows users in backend folder
npm i -g ts-node
-
Create Certificates
mkcert -install mkcert localhost 127.0.0.1
-
Create Mongodb data directory, anywhere you want but preferably in the same directory as Docker Compose. This is optional for Windows users.
mkdir {YOUR_PATH}
-
Create docker-compose.yml.
For Mac and Linux:
version: '3.7' services: mongodb_container: image: mongo:latest environment: MONGO_INITDB_ROOT_USERNAME: {YOUR_ROOT_USER} MONGO_INITDB_ROOT_PASSWORD: {YOUR_ROOT_PASSWORD} restart: unless-stopped ports: - 27017:27017 volumes: - {YOUR_MONGO_DB_DATA_DIR}:/data/db
For Windows:
version: '3.7' services: mongodb_container: image: mongo:latest environment: MONGO_INITDB_ROOT_USERNAME: {YOUR_ROOT_USER} MONGO_INITDB_ROOT_PASSWORD: {YOUR_ROOT_PASSWORD} restart: unless-stopped ports: - 27017:27017 volumes: - data:/mongodb/data/db volumes: data: driver: local
-
Email openharvest@gmail.com to receive the .env file,
cd
into/backend
and save file. -
npm i npm start
note: if 'npm i' fails, add '--force'
cd react-app
npm install
npm start
- Carbon Design System - web framework used
- MongoDB - NoSQL database
- Node.js
- IBM Cloud
Please read CONTRIBUTING.md for details on our code of conduct, areas where we'd like to see community contributions, and the process for submitting pull requests to the project.
Per the The OpenHarvest Technical Charter
Name | Organization |
---|---|
Tyler Philips | IBM |
Ryan Pereira | IBM |
Jonathan Scialpi | IBM |
Vikas Jagtap | IBM |
David Gill | Heifer International |
Join the #openharvest slack channel in the Call for Code workspace.
This project is licensed under the Apache 2 License - see the LICENSE file for details.
- Based on Call For Code README template.