In the previous posts we looked at how to access the ring device, and how to run face recognition on the dowloaded videos. Today, we will wrap the created APIs into a standard stack of Frontend, Backend, Database application. To harness of Angular for the FE, and the flexibility of Mongo on the data storage, we will create these component in Typescript. Also, to leverage the capabilities of Monorepos, we will bundle the FE and BE via NX.
The components we are going to develop here are depicted in blue.

Angular FE
The Ringface application boasts its frontend architecture built on Angular, ensuring a seamless and interactive user experience. Users can easily sift through and view faces tagged in the system. Daily video highlights are just a click away, offering a glimpse of the day’s happenings. Notably, the platform facilitates tagging new faces, enhancing its database and user interactivity. Lastly, with built-in administration tools, managing and overseeing the platform becomes a breeze for administrators.

As our focus here is more on the AI and data processing, I will not outline much on this GUI. You can take it from the ringface-fe monorepo app: https://github.com/ring-face/ringface-gui/tree/master/apps/ringface-fe
Node Backend
Ringface, with its dynamic frontend features, is strongly supported by a backend that embodies efficiency, interconnectivity, and adaptability.
At the heart of Ringface’s backend is an Express server. This lightweight and fast server framework, built on Node.js, powers the essential endpoints that the graphical user interface (GUI) interacts with.
A sophisticated application like Ringface requires the seamless integration of multiple services. The backend adeptly orchestrates the interplay between the classifier, which is pivotal for tagging and identifying faces; the database, which stores and retrieves necessary information; and the ring connector, which ensures that the application interfaces well with other hardware or platforms.
In the age of the Internet of Things (IoT) and wearable technology, it’s essential for applications to connect beyond traditional platforms. Recognizing this, Ringface’s backend integrates with the IFTTT (If This Then That) service. This clever integration means that the application can push its results directly to devices such as the Apple Watch.
Again, the focus is less on this boilerplate, which is available at https://github.com/ring-face/ringface-gui/tree/master/apps/ringface-bff