Skip to content

COVID-19 Contact Tracing Web Application that allows users to check-in when they visit businesses/public places, shows hotspots/areas to avoid, and alerts health officials & the user if the user has come into contact with a hotspot.

License

Notifications You must be signed in to change notification settings

UAws/COVID_contact_tracing_system

Repository files navigation

COVID contact tracing system

image-20210614215541005

Authors

Group member: Akide Liu, Chi Wang, Ziqi Zhang, Zihan Wang..

This project is supervisored by University of Adelaide course Web & Database Computing

Try it out via Online Demo https://tracing-demo.vmv.re/

Demo database will be reset every hour. Bug reporting is welcome .

Github Actions CI Status:CI

YouTube Preview

Youtube

Project Overview

TRACING is an important tool to reduce the spread of the infectious diseases — COVID-19. Based on different user level (user, venue and admin), registered users are able to sign up and log in to the system in order to:

  • LEVEL 1 — User:

    • Manage their user information.
    • Check-in to locations by entering a check-in code.
    • View their check-in history on a map.
    • See current hotspots on a map.
    • See if they've been to a hotspot.
  • LEVEL 2 — Venue

    • Manage their venue information.

    • View the check-in history for their venue.

  • LEVEL 3 — Admins/Health Officials

    • Manage their user information.
    • Create and manage hotspot areas/venues & timeframes.
    • View the check-in history for users and venues.
    • See current hotspots on a map.
    • Manage Users/Venues.
    • Sign-up other Health Officials.
  • Advanced functions:

    • Users/venue managers are able to choose to link a social media/email/other account, allowing login via that platform, to make logging in easier.
    • GPS Location — Users can check in using their browser's location.
    • QR Code scanning Check-In

Dependency review

Example SQL Query

Database dump file : dump.sql

VenueRepository.ts

const [error, result] = await to(this.manager.query(`
    update user as outUser
    set outUser.is_in_hotspot = true
    where outUser.user_id in (
        select user_id
        from (
                 select u.user_id
                 from user_check_in
                          inner join venue v on user_check_in.venueVenueId = v.venue_id
                          inner join user__user_check_in_user_check_in uuciuci
                                     on user_check_in.check_in_id = uuciuci.userCheckInCheckInId
                          inner join user u on uuciuci.userUserId = u.user_id
                 where v.is_hotspot = true
                   AND v.venue_id = ?
                 group by user_id
             ) as u
    );

`, [dbVenue.venue_id]));

Setup Instructions

2021-06-14_21-56-58

Global Start :

  1. Run on official ide.cs50.io

In shared cs50, go to directory : /home/ubuntu/wdc/COVID_contact_tracing_system/script

This cs50 has been authorized to ian-knight-uofa and wdc-marker-uofa with following link: https://ide.cs50.io/d8e35ee8ab724f2db147fb4a556d67b1

After ./run_production_on_CS50.sh in script folder the project would be viewed on the following link: https://ide-d8e35ee8ab724f2db147fb4a556d67b1-8081.cs50.ws/

Important : The default server port for project frontend is 8081

Declaration : the following script will fetch the latest release version on our github project release page. Therefore, Internet connection is required.

cd /home/ubuntu/wdc/COVID_contact_tracing_system/script
./run_production_on_CS50.sh

known issues : If the backend nodejs unfortunately started failed, please rerun the script above. As average, the backend node would be successfully start by run above script 2-3 times.

img

When server started successfully :

2021-06-14_21-25-08

After that, preview could be found by following click :

https://ide-d8e35ee8ab724f2db147fb4a556d67b1-8081.cs50.ws/

  1. Run on Selfhost CS50

There is another script provide ability to build frontend and frontend-admin on CS50, but as the limited resources provide by cs50 (disk space / memory/ CPU), we would strongly recommend build these parts in our self host cs50 environment or on the local machine

cd /home/ubuntu/wdc/COVID_contact_tracing_system/script
./run_build.sh
  1. Run CS50 on local computer via docker (only test on MacOS and ubuntu ). As the size of cs50 base docker image, there are at latest 10GB space available on the local machine

    docker run --name cs50 -p 1337:1337 -p 8081:8081 -p 8080:8080 -d cs50/ide:latest
  2. Self Hosted CS50 (Internal only)

Licensed Under GPL-v3

Authors: All team member of UAws/wdc-team 

COVID_contact_tracing_system
Copyright (C) <2021>  UAws/wdc-team

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

About

COVID-19 Contact Tracing Web Application that allows users to check-in when they visit businesses/public places, shows hotspots/areas to avoid, and alerts health officials & the user if the user has come into contact with a hotspot.

Resources

License

Stars

Watchers

Forks

Packages

No packages published