Ringface: what are we to build

The rapid evolution of smart home devices has brought forth a myriad of innovations designed to enhance security and convenience for homeowners. Among these devices, the Ring Doorbell stands out as a remarkable piece of hardware. Its sleek design, combined with its ability to record video upon motion or ring events, has made it a favorite among consumers. However, like all technology, it is not without its limitations and areas for potential enhancement.

The API Gap and the Community’s Answer

One notable limitation of the Ring Doorbell is its lack of an official API. This absence restricts developers and tech enthusiasts like me from integrating the device seamlessly into broader smart home systems or extracting its full potential. Fortunately, the tech community’s resilience has led to the development of a reverse-engineered API, bridging the gap left by the official version. This unofficial API opens doors to a plethora of possibilities, including the one we aim to explore: linking recorded videos to specific individuals.

While the Ring Doorbell efficiently captures video footage of events, it does not inherently recognize or catalog individuals in those recordings. Ring the company even pledged not to do this: and they have my full understanding for this from the political perspective. But to face the technical challenge, I propose here a tool designed to analyze event videos and create a comprehensive database of persons visiting a property solely on the client end, and solely for legal intentions. Such tool will not only enhance security measures but also provide homeowners with a clearer understanding of their property’s foot traffic.

Harnessing the Power of Microservices

The solution will leverage a microservices architecture, ensuring scalability, maintainability, and efficient resource utilization. Python, renowned for its prowess in artificial intelligence and image processing, will drive the core services around DLIB responsible for video analysis. In contrast, Typescript will underpin both the Angular frontend, ensuring a responsive user interface, and the backend services, guaranteeing robust data handling and communication.

Data storage is a critical component of the solution. I’ve chosen MongoDB. This choice ensures that as the database of recognized individuals grows, the system remains agile and allow for modifications on the users end.

To further enhance the usability and deployment of the solution, I will encapsulate each microservice within Docker container. Using Docker Compose, I will define and manage multi-container Docker applications, making the setup, configuration, and startup of the entire system as straightforward as executing the well known docker compose up command.

Architecture

Fast Track

Here is how the solution shall look like, once completed