Home - microsoft/uwp-shop-analytics-sample GitHub Wiki

App Summary

The demo application serves as a sample for creating a data analytics solution for a small shop owner. The application consists of three major components:

  • The IoT Client application
  • The Server component
  • The Data Visualization component

IoT Application

The IoT application serves one purpose - to track entrance and exit into a store. It uses a Windows 10 IoT Core powered device (I used a Raspberry Pi 2) and two Infrared Beam Break sensors to determine if someone exits or enters the store. When an event is triggered, it then sends a message to a Web API to store that information.

Server Component

Simply put, the server component handles the transfer of data.

When an event is triggered on the IoT device, it sends a Post message to a Web API hosted with Azure App Services. The web app then writes that information to an Azure DocumentDB document (a simple NoSQL database) for later consumption. Finally, when the information has been stored, a push notification is sent to any client devices that are registered with the data visualization component. This notifies the app to refresh the data if it is running, and it will also trigger a toast notification signaling if someone has entered or exited the shop.

When the data visualization client is launched, a Get message is sent to the Web API which then returns the full list of events for further processing.

Data Visualization Component

The data visualization component is what actually provides meaningful insights to the shop owner. When the application is launched, it fetches the data from database through the web api (which serves as an abstraction layer). In addition, the data visualization client component also manages the data processing and displaying of the data in meaningful ways.

High Level Overview

High Level App Design