Giter VIP home page Giter VIP logo

safe-places's People

Contributors

adamleonsmith avatar justinanderson avatar kevinmcd-mitsdm18 avatar kylemtowle avatar penrods avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

safe-places's Issues

The publishing tool fails to combine files

Unfortunately I cannot provide the test data I am using as it is personal data.

Steps to reproduce
Redact two files containing different data (in this case, one from Spain, one from the US) from the same day
In the publishing tool, load both files
Publish the data

Expected behaviour
The file exported from the publishing process should contain both redacted datasets

Actual behaviour
Only one dataset is included. The following is visible in the console:

Uncaught TypeError: Cannot read property 'length' of undefined
at updateStats (index.html:1504)
at updateExposurePoints (index.html:1404)
at updateDateRange (index.html:1343)
at HTMLDocument. (index.html:1314)
at e (jquery.min.js:2)
at t (jquery.min.js:2)

Safe places Roadmap [draft]

Ideas up for discussion

Technical requirements:

  • the application itself should be server independent (just html & js) cc: @penrods
  • health organizations can host the application on there own (actually, they can just download the application and use it locally) cc: @penrods
  • simple modifications should be possible using a standardized/common tecstack cc: @penrods
  • the use of APIs like Google Places API, or the Safe Path API should be optional (saving, editing, etc. should work without an API and local files)

Technical actions:

  • start using a frontend framework (react.js & redux)
  • Unifying location scrubber (reduction tool), publisher and path creator into a single PWA

Backend

  • enable downloading clustered case download (the app will send it's path boundaries to the server and only receives data for this area)
  • having a sample implementation of a API

Version 0.1-alpha

  • Create branch for react implementation @kyletowle
  • Have all the current features in place with a nice UX and a solid technical foundation

Version x.x-beta

  • Implement feature requests and ideas from health officials
  • having the API implementation

Better handling of missing/valid API key & Billing

There is an error (from google) about page not being able to load correctly, when either the API key OR the Billing is not valid or activated. This should be made more clear and presented to the user. For example, you can test for valid API key using code like that found in my own map. But we also need to test for Billing.

Support immediate retraction of a health authority

In the event that a health authorities site has been compromised, there needs to be a way to support an immediate revocation of the compromised data set from that authority.

Specific use case
The website of a health authority is compromised, and the data from that authority is modified to give erroneous results, perhaps adding in time-locations that will alarm the public. The authority would want a way to immediate retract that data while the site is brought back under control. It should be acceptable to retract all data for that authority, as long as that authority can be re-enabled when appropriate.

FEATURE REQ: Intervention site prediction

Since we have access to the redacted anonymous data already from the city officials, we should be taking a step further and predicting the next predicted site, given the existing ones. Think of standard posterior estimation.

Officials might also be able to incorporate information into their modeling that is not publicly available, making this much better suited as a Healthcare Authority operation rather than a client-side calculation.

v2 could take it one step further by performing prediction on encrypted data from users directly

FEATURE REQ: Deployment/security architecture

It would be useful to have a short description on how we recommend HAs deploy the docker containers, and the security architecture.

For example - how many users can be supported by a single container with spec X

I'm assuming no data leaves the browser, but it would be good to state that so that it is clear why we don't need TLS/SSL; why backups aren't necessary etc; that there's no persistence and no need for auth.

These statements can then be supported by tests.

List of bugs in the Pulbisher and Redaction tools

There seem to be many bugs in these tools. Here is a list:

  • The drawing tools are covered by the redaction tool window. (see #41)

  • There is an error (from google) about page not being able to load correctly, when either the API key OR the Billing is not valid or activated. This should be made more clear and presented to the user. For example, you can test for valid API key using code like that found in my own map. But we also need to test for Billing. (See #42 )

  • There seem to be some code errors in the jquery according to FF/Chrome debuggers. (See #43)

  • There are a many additional CSS errors... (#29)

  • Even after I manage to draw points and boxes, both: (#46)
    (a) - the time sliders and
    (b) - the save button is always grayed out!? Why is that?

  • The map always start in Boston. I'm not in Boston, so where do I change this default?

  • In Brave (a Chrome mod) there's only a blank white page... (#39)

A JS error popup appears when a redacted file is loaded into the publishing tool

Steps to reproduce:

  1. Redact a file and export from the redaction tool
  2. Load the file into the publishing tool

Expected Behaviour
File is loaded with no errors

Actual Behaviour
The file is loaded, but a popup appears that says "[object file]". The below stack trace is visible in the console:

jquery.min.js:2 Uncaught TypeError: Cannot read property 'length' of undefined
at updateStats (index.html:1504)
at updateExposurePoints (index.html:1404)
at updateDateRange (index.html:1343)
at HTMLDocument. (index.html:1314)
at e (jquery.min.js:2)
at t (jquery.min.js:2)

On-device encryption at rest

Feature: encrypt data stored on device with a device-specific key that is non-trivial to decrypt (e.g., key > 2048 bit).

Why: for rooted devices, it is imperative to prevent other apps to access Safe Paths data.

Host and Run Safe Places

I think it would be best to have a running version of this tool, that public health and government officials can play with. Not sure where we would host it, but we can upload our own geodata and use this as a "live" version.

  • Khahlil

PUBLISHER FEATURE: Display of Authority GPS Extent

I want agencies to register themselves along with a GPS extent box. The Publisher tool can make this easier for a healthcare authority to determine this by displaying the min/max GPS coordinates. Then the authority just needs to adjust the map view to roughly cover the agency's area in the map view.

This only needs to display the min and max.

Time range is not accurate in the UI

The time range is not accurate in the UI. I uploaded a small dataset covering a couple of hours in the redaction tool, and the range was displayed as "18/04/2020, 00:00:00โ€”19/04/2020, 01:00:00". The actual time window is much smaller.

Steps to reproduce

  1. Unzip and upload the attached file into the redaction tool
  2. Look at the date/time range slider labels.
    1587215334455.zip

Ability to import/add external time-location data

We should have some facility to import/add external time-location data to the published dataset. Two specific use cases come to mind ...

  1. Someone is diagnosed but does not have the app, and does not have google map tracking data that can be imported to the app. The health authority might be able to interview the person and reconstruct at least some of the data.
  2. The health care authority may wish to "seed" the initial rollout of data from data they've already compiled. Gives immediate value to a health authority wanting to implement as fast as possible.

When incorrect data is uploaded to be redacted, no error is provided to the user

Steps to reproduce:

  • Open the redaction tool
  • Upload a JSON file that is not in the right format

What happened:
The sea is shown in the map, but no error is visible to the user. Errors are thrown to the JS console e.g.

Uncaught SyntaxError: Unexpected token , in JSON at position 281
at JSON.parse ()
at FileReader. (index.html:1104)

or

Uncaught TypeError: Cannot read property 'time' of undefined
at FileReader. (index.html:1427)

What I expected to happen
I expected to see an error that is visible to the user, and advises them that the file format is incorrect.

The duration based filters in the redaction tool do not take accuracy into account enough

The dataset I am using is me in my house for 2.5 hours with GPS / bluetooth switched on. Most of the data points correctly show in pink as I am in the same location. However, when I use the "Hide < 1hr" it hides all non-travel. I would expect that these locations would be identified as similar enough to be the same location, and therefore that I had been there over an hour, and would not be hidden.

Steps to reproduce:

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.