The main source of inspiration for this project comes from the difficulty there is in implementing efficient and unobstrusive customer analytics solutions for physical locations, such as shopping malls, college campuses, stadiums, etc.
What it does
The application keeps track of where people go within a large area such as to provide insights on the popularity, or lack thereof, of various smaller areas within a location, where people are entering the area, and where they are leaving it.
How I built it
The application consists of two parts. The first one runs on a Raspberry Pi, and is meant to be a station that would ideally be deployed in the form of many different stations scattered across a physical location, such as to be able to track where people are going at all times. Each station scans the environment for wireless probe requests such as to identify individual people through the Wi-Fi activity their phones emit, essentially relying on the assumption of that, nowadays, most people carry a phone with them. The second part is the viewing client. It takes all the data reported by the stations and displays it to the owner, or administrator, for the physical location in which they are deployed.
Challenges I ran into
The application was originally meant to be implemented in three tiers, having IBM's Blockchain in the middle, between the stations and the view client, as a means of transmitting the data gathered by the stations; however, due to various issues with the Blockchain SDK, it ended up not being possible to implement this tier, and it was, instead, decided to connect the stations directly to the view client.
Accomplishments that I'm proud of
I would say that I am most proud of the wireless scanning functionality that I was able to implement into the stations. I had to learn how to use the Aircrack-ng security suite, and how pipe the output of the aforementioned tool into the server code such that it could be relayed to the view clients.
What I learned
What's next for Footnote Analytics
Possibly finding out why the SDK for IBM's Blockchain didn't work, such as to implement the tier that was originally planned for the application in the future.