Giter Site home page Giter Site logo

liquid-prep / liquidprep-app Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 8.0 10.58 MB

Liquid Prep App is an user interface that is accessed on your mobile device to get water advise for the selected crop.

Home Page: https://liquid-prep-app.s3-web.us-east.cloud-object-storage.appdomain.cloud/

JavaScript 1.23% TypeScript 66.92% HTML 20.09% SCSS 11.75%
angular css hacktoberfest html ibm-cloud javascript pwa typescript

liquidprep-app's Introduction

Liquid Prep

License Slack Web App

Liquid Prep offers an end-to-end solution for farmers who want to optimize their water usage; especially during times of drought. It is specially designed for low-literate farmers in developing countries who also need access to advanced agricultural advice to be successful.

By using an intuitive mobile app, local soil sensors, and backend service in IBM cloud, farmers can be better informed on how to use limited water supplies and increase their chances of growing healthy crops for their small plots of land.

Watch the video

Solution Details

The Call for Code 2019 Global Challenge asked teams of developers, designers, data scientists and business analysts to build solutions that significantly improve preparedness for natural disasters and accelerate relief when they hit. That year, the team answered the call and we have developed a solution for the many low-literate farmers in mostly developing countries to optimize the use of their limited water supply during times of drought.

Learn more about the history, testing, and ecosystem of Liquid Prep

Farmers are the key food providers of the world. Their crops are essential to global human survival and prosperity. Natural disasters, such as droughts, end up affecting farmers and all of us down the line. With increasing fluctuations in global climate, we believe this is a very important problem to tackle.

We have developed Liquid Prep, an end-to-end solution for farmers looking to optimize their usage of water; especially during times of drought. The following depicts the Liquid Prep solution architecture:

Liquid Prep architecture

Liquid Prep architecture

The Soil Moisture Sensor Module, measures the soil moisture level and transmits the data to Liquid Prep App when the App is connected to the sensor module.

Liquid Prep App is designed and developed for users/farmers with low literacy to easily understand, interact and get water advice for selected crop in their current location. The App interacts with the Soil Moisture Sensor Module to get the soil moisture data and IBM Cloud Backend Service to fetch weather data and crop data to generate watering advice for the selected crop.

The Backend Service exposes APIs that are handled by Cloud Functions which interacts with Cloudant Database for crop data and The Weather Company APIs for weather data. The Backend Service is hosted on the IBM Cloud.

The Weather Company

The Weather Data for a given location is being requested to The Weather Company APIs from the Backend Service.

Get Started

Project Roadmap

The Liquid Prep solution currently comprises mainly highly visual and easy-to-use mobile web application, a hardware sensor to measure soil moisture, a back-end data service to power the app, and the IBM Cloud platform for accessing weather and crop data. Our future roadmap adds more functionality to the Liquid Prep platform by:

  1. Localizing the app
  2. Adding more crop data
  3. Considering soil properties for better watering advice.

The goal of the project is to help farmers globally farm their crops with the least amount of water by taking advantage of real-time information that can help improve sustainability and build resiliency to climate change.

Participation is welcomed from software developers, designers, testers, agronomists/agri experts/soil experts, IoT engineers, researchers, students, farmers, and others that can help improve the quality and value of the solution for small farmers around the world.

Key areas the team are interested in developing include localizing the mobile app, considering soil properties for the improvement of the watering advice, updating project documentation, software and hardware testing, more in-depth research, and adding more crops data to the database.

Contributors

Contributing

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.

Technical Steering Committee

Per the The Liquid Prep Technical Charter.

See the CONTRIBUTING.md file for TSC details.

Public meetings

Thursdays at 4:30pm ET. Join us on Zoom.

License

Copyright 2019-2022 Liquid Prep

Unless otherwise noted, this project is licensed under the Apache 2 License - see the LICENSE file for details.

liquidprep-app's People

Contributors

aaronfand avatar apupier avatar christianc355 avatar cnesen avatar crystalgardner avatar dependabot[bot] avatar gaurav-ramakrishna avatar ilfreedom avatar jimmyhua-twc avatar krook avatar nick-child-ibm avatar playground avatar saspect-io avatar sreevani916 avatar yuanyuan199 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

liquidprep-app's Issues

Add localstorage support to store sensor data & etc.

Currently we do not have a way to store data locally.

Add localstorage support and define a json structure to store

  • sensor ip addresses for supporting multiple sensors
  • soil measurements
  • other relevant data

Liquid Prep Backend Service Endpoint link is 404

Description
Liquid Prep Backend Service Endpoint link is 404

step To reproduce
Steps to reproduce the behavior:

  1. Go to Liquid Prep - App ReadME
  2. Click on Deploy Liquid Prep Backend in IBM Cloud Functions

Expected behavior
open the correct link

USB connection isn't working

Describe the bug
USB connection is not able to communicate with ESP32

To reproduce
Select USB connection

Expected behavior
Should connect to ESP 32 and return soil moister reading

  • Device: [e.g. iPhone6]
    Both Android and iPhone

Clicking on the ruler icon at times is not responsive

Describe the bug
While testing the sensor with Liquid Prep App, I noticed from time to time the blue icon is not responsive, sometime it would take multiple clicks to advance to "Step 1" screen. Especially, when click on "Get Advice" to get advice again.

To reproduce
Open Liquid Prep App, select a Crop then click on "blue ruler icon", or after getting a recommendation then click on "Get Advice" again.

Expected behavior
Should take user to "Step 1" screen.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: Android
  • Browser Chrome

Implement user login without user profile

Is your feature request related to a problem? Please describe.
As we scale up and scale out, we will want to consider password-protected certain features of the app, especially for functions like calibration, updating sensor name, time interval & etc.

Describe the solution you'd like
To avoid having to maintain a user profile and database and collect PI, we would want to look into web 3.0 technology to authenticate and authorize user with digital wallet. Here is a reference link to implement this capability

Create a header title bar component.

Currently, each component implements its own header title bar. we can create a header component so that other components (say Farm Dashboard, My crops Measure soil moisture) don't need to implement their own。

The title, icon, and icon click events in the header title bar component need to be customizable

image
image
image
image
image

Create UI to interact with different sensors

Currently we are exposing endpoints and provide a UI for ESP32 sensor for

  • Updating firmware
  • Calibrating air and water values

Would be ideal to be able to perform those tasks directly from Liquid Prep App

Multiple enhancement added to firmware that need to be reflected in the UI

  1. Ability to customize device name appearing in Bluetooth discovery, current version has "ESP32-LiquidPrep" hardcoded. The new implementation can be found in this esp-mesh-bluetooth branch, and UI update here
  2. Ability to display and view all sensors' moisture readings out on the field all in a single view. Sensors are set up in a mesh network using esp-now communication protocol by means of broadcasting sensor data periodically. The esp32 that is closest to the farmer's home with wifi access is dedicated as the gateway with this firmwareesp-now-gateway and the rest of the sensors act as workers with this firmware esp-now-mesh. The esp-now-gateway is responsible to relate all sensors' data to the local express web server run on edge-gateway
  3. In order for the esp-now-gateway to receive all the sensors' data broadcast by the esp-now-mesh workers, they will need to communicate on the channel as the esp-now-gateway. Since the wifi channel could change from time to time, we will need to be able to update the channel via Bluetooth on one of the workers, the update will propagate to the rest of the worker programmatically. (NOTE: if we set the local wifi router to a fixed channel, we won't have to worry about performing the update). But it's a good feature to have in case they have no control of the router. This work is also available in visual-inspection branch and esp-mesh-booth branch

The above firmware updates can be merged into the repo since updates are in their respective folders.
For the UI, the logic will need to port over and will require a new design

=====================
TODO:

  1. Need to revisit how we calibrate sensor water and air value, dipping it in water to calibrate water value is not ideal
  2. How to determine How big of a zone can a sensor cover?
  3. Need to add SSL support to express server, open issue here
  4. Implement sleep mode in firmware to conserve battery life, open issue here
  5. Beautify webtool for flashing firmware with instructions and explanation for each version of the firmware, open issue here
  6. Add Password-protected for certain features and functions, open issue here

Some screenshots
image

image image image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.