Skip to content

Complementary Access Management System for JTracer - a contact-tracing application that provides a safe and easy way to record interactions in public spaces by scanning QR codes. The purpose is of the access management system is to help the response team to identify and notify people who may have been exposed to the virus.

License

Notifications You must be signed in to change notification settings

taiyrbegeyev/jtracer_acs

Repository files navigation

JTracer ACS


Logo

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

JTracer ACS

Complementary Access Management System for JTracer - a contact-tracing application that provides a safe and easy way to record interactions in public spaces by scanning QR codes. The purpose is of the access management system is to help the response team to identify and notify people who may have been exposed to the virus. The earlier we can reach people who might have been exposed to COVID-19, the faster we may avoid the transmission of the virus. The access management system provides features such as the generation and management of QR codes, reconstruction of infection chains, and many more.

Built With

Getting Started

Docker

Docker is one of the prerequisites to make the application up and running. Make sure to install on your machine. Follow this tutorial to install Docker on your Linux machine.

Docker Compose

It will run the client(ReactJS), server(Express.js), and database(MongoDB) containers in the background. Follow this tutorial to install Docker Compose on your Linux machine.

Node.js and npm

Install Node.js and npm

TypeScript

npm install -g typescript

Environmental Variables

Create a file .env in the root direcotry with the following variables:

API_PORT=8000
API_CONTAINER_NAME=api
DB_CONTAINER_NAME=jtracer_mongodb
MONGO_HOSTNAME=mongo
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root_password
DB_NAME=jtracer
CLIENT_CONTAINER_NAME=client

and another .env file in the server directory:

API_PORT=8000

MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root_password
APP_USER=jtracer_user
APP_PWD=fne4njg7
DB_NAME=jtracer
JTRACER_ROOT_EMAIL=admin@jacobs-university.de
JTRACER_ROOT_PWD=Qwerty12345
JTRACER_ROOT_FIRST_NAME=Admin
JTRACER_ROOT_LAST_NAME=Admin
MONGO_HOSTNAME=mongo
MONGO_PORT=27017
API_CONTAINER_NAME=api
DB_CONTAINER_NAME=jtracer_mongodb

ACCESS_TOKEN_SECRET=
ACCESS_TOKEN_LIFE=600
REFRESH_TOKEN_SECRET=
REFRESH_TOKEN_LIFE=86400

MAILGUN_API_KEY=

ENCRYPTION_KEY=
SIGNING_KEY=

Obviously, feel free to change any of these variables according to your preferences.

Installation

  1. Clone the repo
    git clone https://github.com/taiyrbegeyev/jtracer_acs.git
  2. Run the setup script
    cd scripts
    ./setup.sh

Usage

JTracer

Execute yarn start in the jtracer directory to run the app in a development mode. The app is not containerized since JTracer was not a part of the scope. So, you will have to run it manually.

JTracer ACS

In case you want to run the client and server apps in a development mode, then you will have to change the configurations in the server/.env file. MONGO_HOSTNAME should be set to 127.0.0.1 in order to be accessed from the localhost.

How to access the MongoDB Database?

Execute the following command to access the MongoDB as an admin:

docker exec -it DB_CONTAINER_NAME mongo -u MONGO_INITDB_ROOT_USERNAME --authenticationDatabase admin -p MONGO_INITDB_ROOT_PASSWORD

Execute the following command to access the MongoDB as a user:

docker exec -it DB_CONTAINER_NAME mongo -u APP_USER --authenticationDatabase admin  -p APP_PWD

Contact

Taiyr Begeyev - taiyrbegeyev@gmail.com

Project Link: https://github.com/taiyrbegeyev/jtracer_acs

About

Complementary Access Management System for JTracer - a contact-tracing application that provides a safe and easy way to record interactions in public spaces by scanning QR codes. The purpose is of the access management system is to help the response team to identify and notify people who may have been exposed to the virus.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published