GithubHelp home page GithubHelp logo

tyleryasaka / trackcovid-community Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 39.0 5.89 MB

A codebase for setting up TrackCOVID in your own community

Home Page: https://demo.trackcovid.net/

License: MIT License

HTML 1.24% CSS 2.49% JavaScript 96.27%

trackcovid-community's Introduction

TrackCOVID-community

Build Status

An open source project which provides privacy-preserving contact tracing for communities using QR codes.

Demo

This is an open source project which is provided freely to communities which are interested in setting up digital contact tracing to supplement manual contact tracing in a way that is both easy to use and preserves privacy.

Here we present a strategy for setting up QR code-based contact tracing in your community or jurisdiction, with all of the source code necessary for this to happen. This approach can potentially add an additional layer of protection as public places begin reopening. Manual contact tracing in public places is very difficult, if not impossible in many cases. Our approach can help to notify people of potential exposure at these public places in a way that does not invade their privacy.

Information packet

User flow diagram

user flow diagram

How to set up in your community

community setup

FAQ

1. How do I download the app?

This is a "web app", rather than a native app. That means it's just a website you can view on your phone. So, there is nothing to download. You can see a demo at https://demo.trackcovid.net.

2. Where is the data stored?

When a user scans a checkpoint on their phone, the data is stored only on that phone (for curious techies, it is stored in the browser's local storage). When a COVID-positive patient downloads their checkpoint history file and shares this with their doctor, the data will be uploaded to an online database and stored there.

3. How long is the data stored?

When setting up the project, whoever is in charge of the project will need to decide how far back in time to notify people of potential exposures. For example, in the demo app, this is set to 7 days. All checkpoints that are older than this amount of time are considered "expired". Expired checkpoints are continuously deleted, both from users' phones and from the online database.

4. What is in the checkpoint history file?

The checkpoint history file is just a list of checkpoints (random sequences of letters and numbers), each with an associated timestamp. It contains all checkpoints that the user has scanned up to a certain point in the past (the amount of time which has been configured as described in Q #3, e.g. 7 days in the demo app). It contains no data about the user.

5. How are users notified of potential exposure?

Users must check their status through the web app. If a potential exposure has been found, an alert will be displayed prominently at the top of the screen. Users may open the web app at any time to check their status, and they will also see their status the next time they go to a public place and scan a QR code.

Server setup instructions

See detailed instructions here.

trackcovid-community's People

Contributors

jlrdovale avatar tyleryasaka avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

trackcovid-community's Issues

Create admin account

Hi,

I love this project and I got it all working, except for the create admin user part.

I ran the command to create a new user (npm run create-user) and I get the response that my user is created.

When I go to my admin login page, it says my login has failed.

I have created a db call checkpoints, do I need to set something else up?

Is there something that I am missing?

Thanks,

Pim

TrackCOVID deployment to production

Hi Tyler and the community,

Thank you for developing a solution that suits our needs. I'm deploying it to production for a demo to the management but I'm facing some issues.

Here is the proxy config:

`<VirtualHost *:443>
ServerName trackcovid.example.org
ProxyPreserveHost on
RequestHeader set Host trackcovid.example.org

    ProxyPass /api http://192.168.20.56:8000/api
    #ProxyPass /sockjs-node http://192.168.20.56:8000/sockjs-node
    ProxyPass /admin/login http://192.168.20.56:8000/admin/login
    ProxyPass /admin/logout http://192.168.20.56:8000/admin/logout
    ProxyPass /admin/api http://192.168.20.56:8000/admin/api
    ProxyPass /checkpoint.pdf http://192.168.20.56:8000/checkpoint.pdf
    ProxyPass /checkpoint http://192.168.20.56:8000/checkpoint

    ProxyPassReverse /api http://192.168.20.56:8000/api
    #ProxyPassReverse /sockjs-node http://192.168.20.56:8000/sockjs-node
    ProxyPassReverse /admin/login http://192.168.20.56:8000/admin/login
    ProxyPassReverse /admin/logout http://192.168.20.56:8000/admin/logout
    ProxyPassReverse /admin/api http://192.168.20.56:8000/admin/api
    ProxyPassReverse /checkpointf http://192.168.20.56:8000/checkpoint

    ProxyPass /admin http://192.168.20.56:3001/admin
    ProxyPassReverse /admin http://192.168.20.56:3001/admin


    ProxyPass / http://192.168.20.56:3000/
    ProxyPassReverse / http://192.168.20.56:3000/

    CustomLog /var/log/httpd/proxy-trackcovid_access_log combined
    ErrorLog /var/log/httpd/proxy-trackcovid_error_log

    # SSL part
` However, I'm getting the following error message on the console:

webpackHotDevClient.js:60 WebSocket connection to 'wss://trackcovid.example.org/sockjs-node' failed: Error during WebSocket handshake: Unexpected response code: 404

Also, the PDF is not generated.

Please, am I missing something?

Can't access the admin

Hi,

Great job! I'm interested in your project as it matches our requirements. I've set everything up but I'm getting the following in my browser log:

Warning: Invalid DOM property `class`. Did you mean `className`?
    in h1 (at Login.js:26)

index.js:1 Warning: Invalid DOM property `for`. Did you mean `htmlFor`?
    in label (at Login.js:27)

App.js:33 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

Also, on the App page, there is a few errors:

Failed to load resource: the server responded with a status of 404 (Not Found) index.js:1 SyntaxError: Unexpected token < in JSON at position 0 console.<computed> @ index.js:1 :3000/undefined/api/checkpoints/:1 Failed to load resource: the server responded with a status of 404 (Not Found) index.js:1 SyntaxError: Unexpected token < in JSON at position 0 console.<computed> @ index.js:1 :3000/undefined/api/checkpoints/:1 Failed to load resource: the server responded with a status of 404 (Not Found) index.js:1 SyntaxError: Unexpected token < in JSON at position

But there are no such errors at https://demo.trackcovid.net/admin. Could you advise, please?

Regards,

Admin user creation

Hi, the community,

I'm struggling to create the admin user, but this seems not working. Here is the output from the command line in verbose mode:

$ npm run create-user
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'create-user' ]
npm info using [email protected]
npm info using [email protected]
npm verb run-script [ 'precreate-user', 'create-user', 'postcreate-user' ]
npm info lifecycle [email protected]~precreate-user: [email protected]
npm info lifecycle [email protected]~create-user: [email protected]
> [email protected] create-user /home/xxxx/workspace/track-covid
> NODE_OPTIONS=--no-warnings node create-admin-user.js

Enter your production mongodb url (e.g. mongodb://user:[email protected]:27017)
mongodb://admin:admin123@localhost:27017

Nothing follows.

Could you advise, please?

Thanks in advance

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.