This solution starter was created by at the United Nations Human Rights Office in Geneva, Switzerland on February 27-28, 2020. It features contributions by technologists from Unity, Johnson & Johnson, and Red Hat.
- Scott Sewell - Unity
- Jochen Bertels - JNJ
- DeveloperSteve Coochin - IBM
- Joshua Zheng - IBM
- Overview
- Video
- The idea
- How it works
- Diagrams
- Documents
- Datasets
- Technology
- Getting started
- Resources
- License
Natural disasters kill an estimated 90,000 people and affect close to 160 million people worldwide every year, according to the World Health Organization. Severe weather events in particular have been increasing in frequency and intensity over the past decade and scientists believe climate change is a significant factor.
Read the Sendai Framework for Disaster Risk Reduction to see how we make our communities safer and more resilient to disasters.
Technology can help our society better prepare for and respond to natural disasters. Specific use cases include reducing exposure to hazards, lessening vulnerability of people and property, wise management of land and the environment, and improving preparedness and early warning for adverse weather events that are gaining in frequency through climate change.
Due to climate change, floods are becoming more frequent and more severe, leading to specific issues for affected communities. This solution starter kit aims to reduce mortality rates by helping potential victims better prepare for, act during, and recover from a flood. Using a mobile application that helps users share knowledge of best practices and facilitates communities organizing themselves, communities will be able to reduce mortality rates and mitigate economic damage so they can recover faster after a flood.
The goal of the application is to provide an end-to-end solution to help potential victims combat floods. The team approached the problem by breaking it down into three phases: before the flood, during the flood, and after the flood.
Before the flood, the user is presented a checklist of best practices on how to prepare for the upcoming flood. The checklist is derived from the Sendak Framework for disaster preparedness, along with recommendations from seasoned search and rescue professionals. The application will also enable the local authorities to communicate with the user to better enforce disaster preparedness.
In the event of a flood, the app will switch into emergency mode. This mode can be activated by either the user or the local authorities. While in this mode, the app displays a simple evacuation route to the nearest shelter that still has capacity.
After the flood, the app will provide post-flood best practices to help victims rebuild their homes. The app will also enable a community marketplace, providing a platform for residents to trade resources and help push the economy to recover.
By combining IBM's Data & AI offerings with HERE Technologies' location services, a developer can quickly get started building such a solution. The starter kit offers a React Native template that has integration with Watson Assistant and HERE Technologies' location services prebuilt, helping developers jumpstart the development process.
This solution starter idea combines machine learning and location services with real-time information to get users the information they need to take action quickly.
- The user launches the mobile app and can access information across multiple services.
- The use can ask questions to Watson Assistant and get answers to flood planning and recovery related questions.
- The user can access recommendations on flood preparation checklists and best practices with Watson Machine Learning.
- The user receives real-time weather updates from The Weather Company.
- The user can obtain geolocation data for safety points and plot evacuation routes using HERE Location Services.
- Terminology on disaster risk reduction
- Using global indicators to measure progress
- Words into Action guidelines: Enhancing disaster preparedness for effective response
- Health care challenges during and after a natural disaster
- IBM Code and Response: COVID-19
- Malawi Spatial Data Platform (MASDAP)
- Land Usage from MASDAP
- Malawi Disaster & Risk Profile
- Disparities in Cellphone Ownership Pose Challenges in Africa
- Data.gov disaster datasets
- HERE Geocoding and Search
IBM Cloud Services
- Generate insights from multiple data sources
- Transform and load big data CSV files into a database
- 2018 Finalist PD3R
- Create domain-specific bots using an agent bot
- Automate post-disaster checks using drone imagery
- Configuring mesh networking for the IoT
- Build and deploy a disaster donations website with end-to-end encryption
- Build a chatbot for your mobile app
- Rapid development of a scalable mobile application
HERE Location Services
Follow the steps below to get this starter kit up and running. The starter kit is composed of a React Native frontend and a Node.js backend. The application includes a chat bot powered by Watson Assistant answering questions about flood emergencies and integrates map & location services provided by HERE Technologies.
- Register for an IBM Cloud account
- Install and configure IBM Cloud CLI
- Register for a HERE account
- Install Node.js
- Install React Native CLI dependencies
- Clone the repository
- Set up an instance of Watson Assistant
- Generate an API Key from the HERE Developer Portal
- Run the server
- Run the mobile application
Log into the IBM Cloud and provision a Watson Assistant instance.
- Provision an instance of Watson Assistant from the IBM Cloud catalog
- Launch the Watson Assistant service
- Create an Assistant
- Add a dialog skill to the Assistant by importing
starter-kit-flood-dialog-skill.json
- Click on the dialog skill's action menu and select View API Details
- Take note of the Assistant ID and Api Key
- Go to Preview Link to get a link to test/verify the dialog skill
The application uses the HERE Location Services for maps, searching, and routing.
To access these services an API Key is required. Follow the instructions outlined in the HERE Developer Portal to generate a JavaScript API Key.
To setup and launch the server application:
- Go into the
starter-kit/server-app
directory of the cloned repo - Copy the
.env.example
file instarter-kit/server-app
and create a new file named.env
- Edit the newly created
.env
file and update theASSISTANT_ID
andASSISTANT_IAM_APIKEY
with the values taken from the dialog skill's API Detail page in Watson Assistant - Edit the value of name in the
manifest.yml
to your desired application name (e.g., my-app-name) - From a terminal
- Go into the
starter-kit/server-app
directory of the cloned repo - Install the dependencies:
npm install
- Launch the server application locally or deploy to IBM Cloud:
- To run locally:
- Start the application:
npm start
- The server can be accessed at http://localhost:3000
- Start the application:
- To deploy to IBM Cloud:
- Log in to IBM Cloud account using the IBM Cloud CLI:
ibmcloud login
- Target a Cloud Foundry org and space:
ibmcloud target --cf
- Push the app to IBM Cloud:
ibmcloud app push
- The server can be accessed at a URL using the name given in the
manifest.yml
(e.g., https://my-app-name.bluemix.net)
- Log in to IBM Cloud account using the IBM Cloud CLI:
- To run locally:
- Go into the
To run the mobile application (using the Xcode iOS Simulator):
- Go into the
starter-kit/mobile-app
directory of the cloned repo - Copy the
.env.example
file instarter-kit/mobile-app
and create a file named.env
- Edit the newly created
.env
file- Update the
STARTER_KIT_SERVER_URL
, with the URL to the server app launched in the previous step - Update the
HERE_APIKEY
with the API Key generated in the HERE Developer Portal
- Update the
- From a terminal:
- Go in to the
starter-kit/mobile-app
directory - Install dependencies:
npm install
- Go into the
ios
directory:cd ios
- Install pod dependencies:
pod install
- Return to the
mobile-app
directory:cd ../
- Launch the app in the simulator:
npm run ios
- Go in to the
This solution starter is made available under the Apache 2 License.