Safe Distance (ProjectID 37)

Project by Julian Hecker, Ian Matlak, and Josh Obogbaimhe


Living in New York State, we see first hand the effects that COVID-19 has wrought upon workplace environments. Many people are unable to work at all, and are struggling financially.

We wanted to create a tool that will allow people to work safely, while maintaining social distance.

Using this system, it should be possible to have some return to normalcy.

Implementation 1 & 2 are both different ways of solving the same problem, to monitor and influence social distancing for a safer and healthier workplace environment.

Implementation 1 (Required Webapp and Mobile App)

What it does

Safe Distance monitors the number of people that are located within any number of customizable geofences. In the future, we will implement a feature where If there are too many people in a certain area, the mobile app will notify them to leave the area to prevent being too close to each other.

How it works

The project consists of 3 parts: The web app, mobile app, and backend.

  • Employees will activate the mobile app, which sends their live location to the Node JS/Express backend server, and stores it in the Postgresql database.
  • The Server sends the users' location data to the React frontend web app.
  • The Web App can be used to add or manage geofences, which are sent to the server and stored in the database.
  • The server monitors the users' locations and sees if they are inside a given geofence.

How we built it

  • The mobile app (works on android and ios) was built with React Native
  • The backend server and API use Node JS, Express, and PostgreSQL.
  • the web app uses DeckGL and Mapbox for maps, React, and SCSS

Implementation 2 (Required Raspi, Python, Mysql DB)

What it does

This method of SafeDistance uses a Rasp pi to collect probe requests within the antennas range. You can put this in a building to get an estimate of how many people are in a specific area.

How it works

This project consists of 1 part: Backend python script

  • It can be set on a timer to scan the area for devices nearby
  • Ones it picks up the devices it will be sent to the database
  • You can use the data to analyze average traffic in a specific area at any given time or even view live data
  • There is a second option to use a Raspberry Pi running Kali Linux to count the number of wifi-enabled devices within a certain radius and use this instead. We're working on this in another project.

How we built it

  • This back end script built with python3 using scapy library
  • The monitoring required two pieces of hardware, a NIC with monitor mode and a RaspPi

Challenges we ran into

  • Integrating the Postgres database into heroku took many hours
  • Using new map technologies was difficult with sparse documentation (DeckGL)
  • Monitoring mobile device location requires difficult background task manager
  • Getting react-native to perform tasks while the app is minimized like grab the location

Accomplishments that we're proud of

  • Creating a mobile app with background location monitoring
  • Integrating diverse technologies to work together.

What I learned

  • Make sure everyone has enough time to participate, nothing goes to plan
  • Integrating new technologies is difficult
  • How to intergrate a mobile application with a web application

What's next for Safe Distance

  • Implementing proper authentication
  • Implement a frontend page for Raspi Monitoring
  • Implement timekeeping features for clocking in/out based on location

All Repos for projects located here:

Mobile app

Web app

Raspi backend

Share this project: