Safe Distance (ProjectID 37)
Project by Julian Hecker, Ian Matlak, and Josh Obogbaimhe
Inspiration
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
Log in or sign up for Devpost to join the conversation.