All Projects → Call-for-Code → Solution-Starter-Kit-Cooperation-2020

Call-for-Code / Solution-Starter-Kit-Cooperation-2020

Licence: Apache-2.0 license
Materials for the Call for Code 2020 solution starter kit for community collaboration in the context of COVID-19.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
objective c
16641 projects - #2 most used programming language
CSS
56736 projects
ruby
36898 projects - #4 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Solution-Starter-Kit-Cooperation-2020

powerai-vision-object-detection
Use deep learning to create a model and a REST endpoint to allow your app to detect, locate and count your product on store shelves
Stars: ✭ 93 (+272%)
Mutual labels:  call-for-code
openeew-dashboard
Dashboards for monitoring devices, events, users, data and more. Built on Carbon and React.
Stars: ✭ 22 (-12%)
Mutual labels:  call-for-code
predict-wildfire-intensity
WARNING: This repository is no longer maintained ⚠️ This repository will not be updated.
Stars: ✭ 32 (+28%)
Mutual labels:  call-for-code
Solution-Starter-Kit-Hunger-2021
2021 Call for Code Global Challenge solution starter kit: Zero hunger.
Stars: ✭ 40 (+60%)
Mutual labels:  call-for-code
watson-vehicle-damage-analyzer
A server and mobile app to send pictures of vehicle damage to IBM Watson Visual Recognition for classification
Stars: ✭ 62 (+148%)
Mutual labels:  call-for-code
Open-Sentencing
To help public defenders better serve their clients, Open Sentencing shows racial bias in data such as demographics providing insights for each case
Stars: ✭ 69 (+176%)
Mutual labels:  call-for-code
cfc-covid-19-quiz-app
Example Quiz app using Loopback and React
Stars: ✭ 15 (-40%)
Mutual labels:  call-for-code
openeew
Introduction to OpenEEW, an open-source Earthquake Early-Warning toolkit
Stars: ✭ 137 (+448%)
Mutual labels:  call-for-code
visualize-data-with-python
A Jupyter notebook using some standard techniques for data science and data engineering to analyze data for the 2017 flooding in Houston, TX.
Stars: ✭ 60 (+140%)
Mutual labels:  call-for-code
openeew-nodered
Flows and nodes for earthquake detection and alerts
Stars: ✭ 20 (-20%)
Mutual labels:  call-for-code
CFC-COVID-19-Video-Transcriber
The app you build in this tutorial will enable instructors to provide additional notes to students who are using video and audio tools as their primary way to learn.
Stars: ✭ 22 (-12%)
Mutual labels:  call-for-code
Solution-Starter-Kit-Water-2021
2021 Call for Code Global Challenge solution starter kit: Clean water and sanitation.
Stars: ✭ 42 (+68%)
Mutual labels:  call-for-code
global-citizen
WARNING: This repository is no longer maintained ⚠️ This repository, which contains assets to run a Hyperledger Composer application, is not being actively maintained due to a shift to focus on Hyperledger Fabric. This repository will not be updated. The repository will be kept available in read-only mode.
Stars: ✭ 54 (+116%)
Mutual labels:  call-for-code
Project-Catalog
This repository links to projects created as part of Call for Code activities, including those that are not officially hosted by The Linux Foundation.
Stars: ✭ 29 (+16%)
Mutual labels:  call-for-code
Spot-Challenge-Wildfires
http://ibm.biz/cfcsc-wildfires - predict the wildfire/bushfire area for 7 regions in Australia for each day in February 2021
Stars: ✭ 34 (+36%)
Mutual labels:  call-for-code
Prometeo-Pyrrha
Former repository for Prometeo, winner of the Call for Code 2019 Global Challenge, open sourced as Pyrrha (see links within this repo). It measures toxin exposure in real time and analyzes trends over time.
Stars: ✭ 27 (+8%)
Mutual labels:  call-for-code
banking-digitalization-using-hybrid-cloud-with-mainframes
The following journey will introduce the available Banking APIs published on IBM Cloud with logical business programs running on the IBM Z Mainframe through a simulated retail bank called MPLbank.
Stars: ✭ 21 (-16%)
Mutual labels:  call-for-code
watson-discovery-ui
Develop a fully featured Node.js web app built on the Watson Discovery Service
Stars: ✭ 63 (+152%)
Mutual labels:  call-for-code
predictive-model-on-watson-ml
Create and deploy a predictive model using Watson Studio and Watson Machine Learning
Stars: ✭ 51 (+104%)
Mutual labels:  call-for-code

Community collaboration in the context of COVID-19

This solution starter was created by technologists from IBM.

Authors

  • Henry Nash
  • Va Barbosa
  • Javier Torres
  • Omer Arad
  • JJ Asghar
  • Jody Burks
  • Robert Loredo
  • Debbie Kestin Schildkraut
  • Bruce Weed

Contents

  1. Overview
  2. The idea
  3. How it works
  4. Diagrams
  5. Documents
  6. Technology
  7. Getting started
  8. Resources
  9. License

Overview

What's the problem?

There is a growing interest in enabling communities to cooperate among themselves to solve these problems, whether it be to advertise where supplies are held, offer assistance for collections, or other local services like volunteer deliveries.

In times of crisis, such as the 2020 SARS-COV-2 (COVID-19 or "Novel Coronavirus") crisis, while federal and local governments may be rolling out broad programs, cooperation at the local level is usually the most effective way of getting help to where it is most needed as quickly as possible. Traditional social media is one way of communicating within a community, but this is (by its very design) not locally focused, and often not sufficiently structured to enable rapid discovery of help needed.

In the COVID-19 crisis, we have already seen shortages of local food, medical equipment, and other supplies. In addition, the recommended (or required) self-isolation and social distancing measures can compound the problem by preventing people from easily getting to locations with the best stocks of supplies.

What is needed is a solution that empowers communities to easily connect and provide this information to each other.

How can technology help?

Mobile, web, and cloud services enable rapid deployment of applications that can empower cooperation in the community. Watson Assistant is a service on IBM Cloud that allows you to build, train, and deploy conversational interactions into any application, device, or channel.

Creating a chatbot using Watson Assistant can help you address the issues that your users may face while trying to gather the necessary information. Embedding location/routing services (like HERE) can enhance such applications, giving optimum guidance so that they are outside of their isolation location for the minimum amount of time.

The idea

The goal is to provide a mobile application, along with server-side components, that serves as the basis for developers to build out a community cooperation application that addresses local needs for food, equipment, and resources. It would allow both "Suppliers" (such as a store or a community member who has produce they can sell or distribute) to make people aware of what the have; and consumers ("Recipients") to locate where these supplies are, and, if necessary, guide them to the appropriate locations to pick them up.

How it works

A Supplier (who may be a regular resident, a small business, a voluntary organization, etc.) that has food, supplies, resources, or other essentials they can provide opens the mobile application and fills out a brief form that indicates what they have. This information is then stored in a database in the IBM Cloud.

A Recipient, who is in need of food, supplies, resources, or other essentials, opens the mobile application and can use the chat interface to locate supplies near them. For instance, they might type "Where can I find bread?" or "Can someone collect my shopping for me?" The mobile application then accesses the database (after first understanding the question via Watson Assistant) and then displays a map showing locally where they can find what they are looking for.

Diagrams

Cooperation architecture diagram

This solution starter idea combines a chat interface (Watson Assistant), data storage to hold the status of supplies available, and location services with real-time information to get users the information they need.

  1. The Recipient launches the mobile app and can access information across multiple services.
  2. The Recipient can ask questions to Watson Assistant and get answers on food/service availability questions.
  3. The Supplier can post the availability of stock or services they can provide, as well as locate the items they need.
  4. The Recipient can obtain geolocation data to plot routes to collect (or drop off) supplies using HERE Location Services.

Documents

Trusted sources for COVID-19 Information:

Technology

IBM Cloud Services

HERE Technologies

Getting started

Prerequisites

Steps

  1. Set up an instance of Watson Assistant.
  2. Provision a CouchDB instance using Cloudant.
  3. Generate an API Key from the HERE Developer Portal.
  4. Run the server.
  5. Run the mobile application.

1. Set up an instance of Watson Assistant

Log in to IBM Cloud and provision a Watson Assistant instance.

  1. Provision an instance of Watson Assistant from the IBM Cloud catalog.

  2. Launch the Watson Assistant service.

  3. Create an Assistant.

  4. Add a dialog skill to the Assistant by importing the starter-kit-cooperation-dialog-skill.json file.

  5. Go back to All Assistants page, open Settings from the action menu ( ) and click on API Details.

  6. Note the Assistant ID, API Key, and Assistant URL. For Assistant URL, make note of the base URL/domain (e.g., https://api.us-south.assistant.watson.cloud.ibm.com or https://api.eu-gb.assistant.watson.cloud.ibm.com) and not the full directory/path. You will need all three of these values in Step 4 below.

  7. Go to Preview Link to get a link to test and verify the dialog skill.

2: Provision a CouchDB instance using Cloudant

Log into the IBM Cloud and provision a CouchDB instance using Cloudant.

  1. From the catalog, select Databases and then the Cloudant panel.
  2. Once selected, you can choose your Cloudant plan -- there is a free tier for simple testing that is sufficient to run this CIR example. You should choose an appropriate region, give the service a name, and it is recommended you choose Use only IAM under Available authentication methods. You can leave the other settings with their defaults. Click the blue Create button when ready.
  3. Once your Cloudant instance has been created, you need to create a service credential that the CIR API Server can use to communicate with it. By selecting your running Cloudant instance, you can choose Service credentials from the left-hand menu. Create a new service credential and give it a name (it doesn't matter what you call it).
  4. Once created, you can display the credentials by selecting view service credentials, and then copy the credential, so you are ready to paste it into the code of the API server in Step 4.

3. Generate an API Key from the HERE Developer Portal

The application uses HERE Location Services for maps, searching, and routing.

To access these services, you'll need an API key. Follow the instructions outlined in the HERE Developer Portal to generate a JavaScript API key.

4. Run the server

To set up and launch the server application:

  1. Go to the starter-kit/server-app directory of the cloned repo.
  2. Copy the .env.example file in the starter-kit/server-app directory, and create a new file named .env.
  3. Edit the newly created .env file and update the ASSISTANT_URL, ASSISTANT_ID, and ASSISTANT_IAM_APIKEY with the values from the dialog skill's API Detail page in Watson Assistant, from Step 1. Also, update the CLOUDANT_ID and CLOUDANT_IAM_APIKEY with the values from the service credential you created in Step 2. (Note that the username from the credential is what should be used for the CLOUDANT_ID.)
  4. Edit the name value in the manifest.yml file to your application name (for example, my-app-name).
  5. From a terminal:
    1. Go to the starter-kit/server-app directory of the cloned repo.
    2. Install the dependencies: npm install.
    3. Launch the server application locally or deploy to IBM Cloud:
      • To run locally:
        1. Start the application: npm start.
        2. The server can be accessed at http://localhost:3000.
      • To deploy to IBM Cloud:
        1. Log in to your IBM Cloud account using the IBM Cloud CLI: ibmcloud login.
        2. Target a Cloud Foundry org and space: ibmcloud target --cf.
        3. Push the app to IBM Cloud: ibmcloud app push.
        4. The server can be accessed at a URL using the name given in the manifest.yml file (for example, https://my-app-name.bluemix.net).

5. Run the mobile application

To run the mobile application (using the Xcode iOS Simulator or Android Studio Emulator):

  1. Go to the starter-kit/mobile-app directory of the cloned repo.
  2. Copy the .env.example file in the starter-kit/mobile-app directory, and create a file named .env.
  3. Edit the newly created .env file:
    • Update the STARTER_KIT_SERVER_URL with the URL to the server app launched in the previous step.

      Note: If you are running the server locally and testing with the Android Emulator set the STARTER_KIT_SERVER_URL using the local machine's URL (e.g., http://10.0.2.2:3000) instead of localhost

    • Update the HERE_APIKEY with the API key generated in the HERE Developer Portal.
  4. From a terminal:
    1. Go to the starter-kit/mobile-app directory.
    2. Install the dependencies: npm install.
    3. iOS only: Go to the ios directory: cd ios.
    4. iOS only: Install pod dependencies: pod install.
    5. iOS only: Return to the mobile-app directory: cd ../.
    6. Launch the app in the simulator/emulator:
      • iOS only: npm run ios

        Note: You should be running at least iOS 13.0. The first time you launch the simulator, you should ensure that you set a Location in the Features menu.

      • Android only: npm run android

        Note: Your Android Studio needs to have the Android 9 (Pie) SDK and a Pie API Level 28 virtual device

      • Alternative way to run on Android: react-native run-android
        1. Android only: Open Android Studio and setup the project with the android folder.
        2. Android only: Open Android Virtual Device Manager and launch the virtual device installed.
        3. Android only: Click on Debug in Android Studio.

With the application running in the simulator/emulator, you should be able to navigate through the various screens:

Intro Screen Donate Screen Search Screen Chat Screen Map1 Screen Map2 Screen

Resources

License

This solution starter is made available under the Apache 2 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].