Inspiration

COVID 19 is turning out to be one of humankind’s most formidable threats in recent history. In a short time it has challenged and changed the way our world is working. Every economic sector and every individual are now being called upon to bring their contribution, to reinvent their roles in society and, most importantly, to take care of one another.

In this context, we, the Stone Soup Team, wanted to find ways in which to contribute to the global effort to reclaim our world from the pandemic’s grip.

We want to provide a tool for people to receive updated information in the easiest and simplest way, on a regular basis, on what’s happening around them in regards to the Covid19 virus. The information would be from official online sources, crowd sourced from the population around, and updated by the government or local health organizations.

We also want to provide a way to disseminate information. Users can assess their health using the application (without providing ANY personal information) and broadcast it through the system. The information would be uniquely identified but anonymous.

We would like to make this system available to governments and medical organizations, via any existing interfaces, for improved and higher quality information gathering, as well as for emergency communication. The government can get full access to all information gathered through the platform and make use of it in order to push specific notifications to people in different risk groups.

What it does

The Pandemic Report system we have built serves as a tool for disseminating and harvesting information in regards to the Covid19 virus, to and from the population. Currently the system has 3 components:

  1. an indexing engine component that can harvest multiple sources of information in multiple languages
  2. a backend component that can sustain hundreds of thousands of users and can be scaled to millions, through which data is served and citizen information is gathered
  3. 2 native mobile apps that serve as interfaces for data dissemination and information gathering from users The system provides updated information in the easiest and simplest way to the people, regularly showing what’s happening around regarding the COVID 19 pandemic. The information is from official online sources, crowd sourced from the population and, potentially, updated by the government or health organizations How it works: ● Users can see the spread of pandemic cases over a map, as well as distribution of cases of flu - which can be unconfirmed cases of the virus ● Through the statistics view they can understand the numbers and progression of the pandemic ● The news section shows all the updates on the disease from official online sources, with links towards the source, as well as government warnings ● Most important, users can contribute to the effort by providing regular updates on their health status via the app

How I built it

Currently the system has 3 components:

  1. The indexing engine component that can harvest multiple sources of information in multiple languages was built so it can be expanded easily and more sources can be added on the go. The provided information is from official online sources and crowd sourced from the population (users). As a result we built scrapers to extract information from sources like https://www.worldometers.info/ https://www.rki.de/ https://datelazi.ro/ to which we can add many others, in order to provide a unified quality source of information, easy to navigate and use both from a map interface and through search. This has been built in python and the search was deployed using Solr.

  2. The backend component that can sustain hundreds of thousands of users and can be scaled to millions, through which data is served and citizen information is gathered, has been designed from the start with such challenges in mind. We have experience in building and deploying such systems - relying on python, solr, mongo and mysql.

  3. 2 native mobile apps (ios & android) that serve as interfaces for data dissemination and information gathering from users It was crucial to find the right solution to track users without getting any personally identifiable information (PII), while knowing it's the same user after multiple installations, and keeping things anonymous, secure and fast. We managed to do just that - the system can't be flooded with false information and users aren't identified in any way.

Challenges I ran into

Finding the right way of displaying pandemic data on the map was fairly difficult - having to take into account various country sizes, existing population (taking into account density), infected population, global infected population (which is on the rise) and finding a way of showcasing relevant information to the user. We've ended up having a formula that takes all these into account, and makes use of some logarithmic functions to normalize and adjust for pandemic growth.

The most difficult problem was one of information fusion, solving data inconsistency and merging data from multiple sources. We get information from city level from Germany, US and Romania (for now), we sometimes have county level information, some other times we need to compute it, and everything cascades at country level. For some countries it's required to cascade all cities and counties for others we use the global report information. And this may seem easy, but each source and country can use different languages and different names for the same entities, so this has to be addressed as well.

Another challenge is deciding on how to display information relative to what the user is seeing when no country, county/state, or city is selected. We're summing up all visible sources based on geographical coordinates. This in itself is an issue, since certain countries have canvases that include islands and pieces of land that cover a significant part of the globe. Data has to be cleaned, convex hull solutions have to be made and so on.

Ensuring unique information for reports without getting any Personally identifiable information (PII) was a challenge. But we found the right solutions to track a combination of device ids and other properties, and making use of double encryption to prevent any attacks to the system that could generate additional data.

Accomplishments that I'm proud of

We managed to deliver a working application in a super short time that can, with just a little extra work, be launched in the next week for the population at large.

What I learned

Even simple premises may require hard complex solutions - as a team we managed to get this done!

What's next for Pandemic Report Covid19

We are looking to complement this system with the following:

  1. Build a web dashboard to be used by the governments or medical institutions in order to make use of the data harvested through the application and to be able to act upon it
  2. Add more crawlers and sources to the indexing engine for all countries
  3. Add an AI prediction component for pandemic spreading based on official and harvested data
  4. Implement a multi-language component for translating the app and news, and translating it multiple languages
  5. Integrate local telemedicine partners for potential high risk users
  6. Generalize or create different configurations for the app - so it can be used with other pandemics or with any health spreading issue that may arise. This can be done by implementing a health chat bot like interface in place of the health report screen and adding a system with word embeddings specialized for health, to detect symptoms in text. Connect that with an AI based disease matching system and we have a generalized solution that can be used globally and detect pandemics anywhere in the world after the crisis;
  7. Partner with governments and other organizations to promote the application online for fast and high adoption.
Share this project:

Updates