Putting it All Together

February 28, 2019

At this point in time, all of the core tech run in-house that handles the facial detection and tracking is done, but there's still a lot left to do! Once the face is detected and extracted, its age and sex need to be identified and stored in a database. For our purposes, we've decided to write a Golang server that will act as a middle layer between the C++ application directly handling the image and everything else that stores, extracts, and displays the information. Since this doesn't demand super high performance (1-2 seconds between the face being detected and it appearing in the database is acceptable as long as the results are accurate), using Golang as a middle layer is an acceptable tradeoff for ease of interfacing.

Next, we need to decide on a database to power the best way to store the data. The most important decision that needs to be made is whether to store the information in a SQL or NoSQL database. Because the range of queries that we're performing is quite limited, grouped essentially only based on date and gender, it makes more sense to be using a NoSQL database that allows for flexibility in data structure. As a result, we've chosen to store the information in the most common NoSQL database, and one we have experience with, MongoDB, and have linked it to interface with the Golang middle layer. An image of the overall interactions can be seen below.

Architectural Design. Feb 28, 2019.

We're definitely making good progress on this last bit of work that will tie everything together. We've already finished most of the middle Golang layer, set up the database with real data coming from the main program, and are looking to move onto the dashboard after all the backend work is done. Work is progressing smoothly and on track, and hopefully we'll be ready for any complications that rise up in the next few weeks!