Return to Resources

Open Source Contact Monitoring

Jul 28, 2020

3 min read

By: Ed Wei

We are happy to share that we have open sourced our Contact Monitoring solution! To see how it all works under the hood and get your own system running, read on.


Apple and Google has teamed up together to offer a set of public contact tracing APIs that allows iOS and Android devices to be used to detect when an individual has been in contact with some who has been tested positive for COVID-19. While governments and health authorities around the world are benefiting from this technology, very little is available for the enterprise world, where employees are coming back to work, places are re-opening. With our contact monitoring solution, we can utilize indoor positioning technologies, such as Apple's Indoor Maps Program, and use that information to accurately determine contact events. We've been working with Apple for many years, building on top this positioning technology. It would naturally be a fit here. A solution like this would benefit places like hospitals, corporate offices, manufacturing facilities, etc.

Privacy is an area where we feel full transparency is the ultimate solution. There's nothing better than showing all of the code that's involved in processing the data. This is why we have decided to open source our solution. We've done our best to ensure there's no personal information being collected. We used generated IDs everywhere, only send data when you are on site at your venue, and you have the full power on deciding how long to retain the data in the database. You can read our documentation on github for more information.


Below is a diagram that shows how the contact monitoring solution works.

We have created a mobile sdk that anyone can integrate with their existing employee app. It continuously collects positioning data, but only when the device is located on site. The data is then sent to the server for processing. The server processes the events in near realtime and determines contact. And finally, we made a dashboard that can visualize the contact events.

There are mainly 3 components that we are open sourcing, Mobile SDKIngestion API, and Dashboard

Native Mobile SDK

This SDK is responsible for tapping into indoor positioning systems to get device's location data, and it does so in the background in a way that minimizes battery usage. It only collects position data while you are on site. Testing in our lab indicates that we consistently get accuracy of 2 meters (or 6 feet) when using Apple's Indoor Positioning System. Contact us to get your venue indoor positioning ready.

To learn more about how our Contact Monitoring Mobile SDK works, go here.

Ingestion API

The Ingestion API is where the heart of the system is. It is responsible for collecting device location data, process it at high volume to determine contact, and store it optimally for querying by our dashboard. We went through several iterations of the design of the algorithm. You can read about it here.


The dashboard is where all the contact monitoring information is surfaced. It queries the processed data and provides visualizations that uses Mappedin's indoor maps. Contact us to get a map created for you.

Some functionalities of the dashboard include:

  • List detail view & map detail view

  • Contact events are aggregated as you zoom out of the map and disperse as you zoom in

  • When an event is selected, a summary of that event displays

  • An event is placed at the location where the interaction started

Get started on running your own Contact Monitoring system

Head on over to our github pages.

iOS Contact Monitoring SDK Contact Monitoring Ingest API Contact Monitoring Dashboard