GithubHelp home page GithubHelp logo

isabella232 / checkpointcovid Goto Github PK

View Code? Open in Web Editor NEW

This project forked from as-ideas/checkpointcovid

0.0 0.0 0.0 96 KB

CheckpointCovid is a prototype corona virus infection tracker

Python 4.64% Jupyter Notebook 95.36%

checkpointcovid's Introduction

Checkpoint Covid

Description

Checkpoint Covid is a prototype for a server-client mobile application which allows the clients to build a history of real-world encounters, which is used by the clients to check if they came in contact with users who tested positive for the virus.

The server stores no positional information, but notifies the client when there are other users in the same area.
With this information clients then build a local history of contacts.

The information stored on the server is a list of infected users, while locally the clients store an anonymous time-series of encounters.

Currently this is done by mapping the position of the users to tiles on a map, future steps of the project include a proximity signal, so the clients will independently build the contact history by scanning their environments

How does it work

While running, the client app sends its current location (x,y) to the server.
The server maps these location to a tile on the map (ideally only streets).
The server discards the location information when new is available, so it does NOT store any location history.

The server checks if multiple users are in the same tile at the same time (gropuby tile, count users) and builds a list of tiles containing multiple users:

 [int: tile_n, list: user_ids]
 e.g.
 [[tile1, [user1, user2, user8]], 
  [tile18, [user3, user42],
  ...
 ]

The server then sends the list of user_ids to the users involved.

The users, on their local device, build a list of "encounters" (contacts) as [(user1, time1), (user2, time1), (user14, time5), ...]

When a user is tested positive, the users send a message to the server, which maintains a list of positives with timestamps.

When the clients update their contact history, or when the infected list is updated on the server, the clients locally scan their contact history to find any (time-stamped) overlap with the list of positives on the server and send a response to the server, which then updates, or not, the list of positive users.

checkpointcovid's People

Contributors

cfrancesco avatar

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.