Skip to content

Latest commit

 

History

History
90 lines (73 loc) · 2.63 KB

README.md

File metadata and controls

90 lines (73 loc) · 2.63 KB

Contact Tracing System Using Node.js and Beacon Low Power Devices

Goals

  1. To calculate the number of students present in a room in a given time period.
  2. Show Historical Data of a given Matricula number.

Assumptions

  1. Students are registered with the system and are given a beacon with static UUID.

Packages In Use

Scanner

  1. “node-beacon-scanner” and “noble” packages for scanning Beacon Devices.
  2. MQTT Client.

Server

  1. “Express” web App Framework for building HTTP REST API.
  2. “Mosca” Node.js MQTT Broker.
  3. “Vonage” for smsservice.

Dashboard

  1. React.js
  2. MQTT Client for receiving published data.
  3. React-chartjs-2 for analytics.

Simulator

  1. “bleno” package for simulating iBeacons.

Architecture

Architecture of the Application

Beacon Scanner

  1. Beacon scanner is the device which collects the beacon UUIDs using noble library.
  2. It also sends the data to server using MQTT.
  3. It stores historical data of beacons along with their location of in the Mongo DB.

Class Diagram of the Beacon Scanner

Beacon Scanner

MQTT Server

  1. Receives signals from beacon scanners.
  2. Sends alerts when the rooms are overcrowded.
  3. It stores historical data of beacons along with their location of in the Mongo DB.
  4. Provides REST services to the client dashboard such as:
    • Number of active beacons per room.
    • Number of active beacons per Department.
    • Gross time spent in each room by a beacon associated to a matricula number.

Class Diagram of the MQTT Server

MQTT Server

Client Dashboard

The client dashboard fetches the data from the server with MQTT and HTTP protocols. It displays the information about the beacons

  1. In a detailed list
  2. As analytical graphs

Class Diagram of the Client Dashboard

MQTT Server

Beacon Simulator

  1. Simulation of the BLE device carried by the students.
  2. Emits a beacon with a static UUID provided by the admin.
  3. Implemented using Blenopackage.

Video Tutorial

Load Application