My friend and I were at the school library one day and we wanted to both grab some lunch together. We could leave our laptops at the library - it is pretty safe. But what if the unexpected happens and a thief takes our laptop? All of the software in the market are heavy duty apps that require users to install drivers and software. There isn't one that allows the user to simply fire up a webpage on the laptop to ward off would-be laptop thieves. Hence, WatchDog fills this niche area.

What it does and how I built it

The main watchdog uses Viola–Jones object detection to count the number of faces detected. If the number of faces detected exceeds a certain threshold, then it can be inferred that there might be unwanted guests trying to access your laptop. In most cases, people walking by would be not be counted as a face.

There are also secondary watchdogs that immediately fire when the user closes the window without unlocking it, or if the internet connection suddenly goes down, both of which might be indicative of suspicious behavior.

Knurld comes into play when deactivating the watchdogs. You need to be able to authenticate successfully for the aforementioned watchdogs to not trigger.

Challenges I ran into

Working with the Knurld voice authentication API was a challenge as the API responses when there was an error tended to vary, thus it was pretty difficult to account for all the edge cases.

Accomplishments that I'm proud of

Integrating Knurld voice authentication API as well as the new Firebase into a web application that is run almost entirely client-side.

What I learned

I've learnt that voice biometrics have come a long way. I remembered reading about it years ago in a science magazine and thought that it would never be that accurate. However, Knurld opened my eyes to its potential in various domains. It can be useful a second factor authentication in domains as varied from medical to finance.

What's next for WatchDog

I would add several features such as automatically sending webcam pictures and geolocation updates to a specified email address.


Live demo available here

Video demo available here

Built With

Share this project: