SafeTrace
SafeTrace copied to clipboard
Google Map API integration for Global view
The application will have two ways that allows users to consume data:
- Individual reporting
- Global view This issue is regarding Global view.
Once users add their location to the encrypted DB running inside the Trusted Execution Environment (TEE), the code inside the TEE will cluster all places that users who have tested positive have been to in the past 14 days, with more recent location receiving higher weights.
We create a heatmap using Google Maps API. Heatmap API can take 3 inputs <<latitude, longitude, weight>>. Weight is a function of time in our case. For example a location with timestamp less than 1 day has the highest weight, as time passes the weight goes down and eventually reaches 0 after 14 days.
We need to assess the pros / cons of running the mapping API inside the TEE vs. running a lightweight clustering inside the TEE and passing results to the maps API. The trade-off between the two options is privacy.
To-do:
- [x] Assess the option to run clustering algorithm run inside the TEE and output to be sent to maps API. This ensures added privacy compared to sending all entries to the mapping API
- [x] Assess the option to run clustering algorithm and mapping API inside the TEE
UPDATE: Decision is to run a clustering algorithm within the enclave and pass clustered data points to the map API. I.e. if there are 10K users, clustering algo will submit 100 data points to the map API
Global view should also contain data of number of tested in a city level. We need to show how many ppl who are affected in the New York and how many are in the app (self reported).
This is important so that the product doesn't mislead individuals (under fit the severity given low potential reporting sample)
UPDATE: This resource can be used for city / state level official data - https://github.com/summyfeb12/COVID-19-JHU-Data-API